两个struts2 webapp无法一起启动
我在让两个不同的 struts2 webapps 在 tomcat 中一起启动时遇到问题。 但是,当独立放置在 tomcat 的 webapps 文件夹中时,每个 webapp 都会正确启动。
我在 catalina.out 日志中收到以下内容 -
SEVERE: Error filterStart 八月 13, 2009 3:17:45 PM org.apache.catalina.core.StandardContext 启动 严重:由于之前的错误,上下文 [/admin] 启动失败环境 -
Java1.6、Tomcat6、Struts2.1.6、FC10
Web 应用程序是“admin”和“user”。 这两个 web 应用程序分别在其 WEB-INF/lib 目录中包含 struts2 jar。
web.xml 在两个 web 应用程序中都包含以下内容 -
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
需要注意的是,“admin”web 应用程序始终无法加载并出现上述错误。 如果我从 webapps 文件夹中删除“user”webapp,“admin”webapp 就会正常出现。
我还观察到 web.xml 中关于 struts2 过滤器的另一件事 - 如果我从其中一个 web 应用程序中的 web.xml 中删除 struts2 过滤器,则两个 web 应用程序都会在日志中没有任何错误的情况下启动(但当然我不会能够在删除过滤器的 web 应用程序中使用 struts)。
我也尝试过将 struts2 jar 移动到 tomcat lib 并从各个 web 应用程序中删除它们,但存在同样的问题..
有什么想法导致这个问题吗?
更新:奇怪的是,这在 Ubuntu 操作系统上运行得很好。 但该问题在 FC10 和 OpenSolaris 上仍然存在。
I have problems getting two different struts2 webapps to start together in tomcat. But each of the webapps start correctly when placed independently inside webapps folder of tomcat.
I get the following in catalina.out logs-
SEVERE: Error filterStart
Aug 13, 2009 3:17:45 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/admin] startup failed due to previous errors
Environment- Java1.6, Tomcat6, Struts2.1.6, FC10
The webapps are "admin" and "user". Both of these webapps contain struts2 jars inside their WEB-INF/lib directory respectively.
web.xml contains the following in both the webapps-
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
A point to note that always the "admin" webapp fails to load with the above error. If I remove the "user" webapp from webapps folder, "admin" webapp comes up just fine.
I have also observed one more thing w.r.t struts2 filter in web.xml- If I remove the struts2 filter from web.xml in one of the webapps, BOTH the webapps start without any errors in the logs (but of course I won't be able to use struts in the webapp where the filter is removed).
I have also tried moving the struts2 jar to tomcat lib and removing them from individual webapps, but same problem exists..
Any ideas what is causing this problem?
Updates: This strangely works fine on Ubuntu OS. But the problem persists on FC10 and OpenSolaris.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在使用 Spring 并在 web.xml 中使用此侦听器类时遇到了类似的问题:
org.springframework.web.util.Log4jConfigListener
请参阅 Spring 的文档 Log4jWebConfigurer,这表示您需要为每个 Web 应用程序定义唯一的“Web 应用程序根”属性,所以我必须在每个 web.xml 中都有这样的部分:
你正在使用 Spring 吗? 如果不希望这能给你一些线索,我对 Struts2 不太了解,也许它做了类似的事情。 请让我知道进展如何!
I had a similar problem using Spring and using this listener class in web.xml:
org.springframework.web.util.Log4jConfigListener
See the documentation of the Spring Log4jWebConfigurer, which says you need unique "web app root" properties defined per web-app, so I had to have a section like this in each web.xml:
Are you using Spring ? If not hope this gives you some clues, I don't know much about Struts2 maybe it does something similar. Do let me know how it goes !
我们在同一服务器上启动两个 struts2 Maven 应用程序时遇到了同样的问题。
xerces
lib 是问题所在,因此我们在pom.xml
依赖项中添加了xalan
,一切正常:We had the same problem while launching two struts2 Maven apps on the same server. The
xerces
lib was the problem so we did addxalan
in thepom.xml
dependencies and everything worked fine:谢谢 alzoid、extraneon 和 Peter。
我忽略了 localhost..log 文件上出现的异常。 我以为我已将所有 struts 日志重定向到不同的日志文件,但忽略了在 log4j 属性文件中提及 opensymphony 包。
回到最初的问题 - xerces-impl jar 和属于 struts2 的其他一些 jar 文件存在类加载器问题。 因此,当我从两个应用程序的 WEB-INF/lib 目录中删除 xerces-impl jar 时,它开始工作正常!
Thanks alzoid, extraneon and Peter.
I had overlooked an exception coming up on localhost..log file. I thought I had redirected all the struts log to a different log file but had overlooked mentioning the opensymphony package in the log4j properties file.
Coming to original problem- there was a class loader issue with xerces-impl jar and some other jar file belonging to struts2. So when I removed the xerces-impl jar from the WEB-INF/lib directories in both apps, it started worked fine!