我正在将JavaEE项目从Sun Application Server 9.1迁移到Glassfish 3.1.2。该项目具有以下结构:
耳
| - /lib/someProject.jar(由confictEJB和EJB使用)
| - confictEJB.jar
| - EJB.jar
| - webProj.war
罐子和耳朵是用maven建造的。问题是,这在SAS 9.1和Glassfish 2.1中没有错误地部署。但是在Glassfish 3.2.1中我收到了这个错误:
#|2012-04-23T13:44:29.562+0200|SEVERE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=34;_ThreadName=Thread-2;|WebModule[/ArchiveTool]PWC1396: Servlet /ArchiveTool threw load() exception
javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xml
at org.apache.struts.action.ActionServlet.handleConfigException(ActionServlet.java:739)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:715)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
看起来ActionServlet无法在GF3.2.1中解析/找到struts-config.xml。到目前为止我做了什么:
战争项目的结构:
webProj.war
| - 一些东西(图像,CSS,js等)
| - META-INF
| - WEB-INF
| - lib
| - struts.jar(其他人)
| - struts-config.xml
| - struts-config_1_2.dtd
| - glassfish-web.xml
| - web.xml
有没有人知道什么是遗漏或我可以检查任何进一步的配置? 任何帮助是极大的赞赏! 谢谢!
答案 0 :(得分:0)
好的,这给了我解决方案的提示: Maven - Creating Skinny WARs
我必须将每个来自战争WEB-INF / lib forlder的lib放到要找到的ear lib文件夹中。含义 - 如Maven页面中所述 - 我必须将war使用的所有依赖关系的范围设置为<scope>provided</scope>
,并将依赖关系添加到pom.xml
中的这个jar中,这包括耳朵。< / p>
所以耳包必须如下所示:
耳
| - / lib
| - someProject.jar(由confictEJB和EJB使用)
| - struts.jar
| - confictEJB.jar
| - EJB.jar
| - webProj.war