我正在将常规J2EE应用程序转换为使用Maven。我能够成功转换为Maven,并且我获得了成功的“mvn deploy”。在将耳朵部署到WAS之后,这个问题正在面临。我得到 SRVE0203E:Servlet [action] org.apache.struts.action.ActionServlet缺少另一个必需的类。哪些罐子需要存在于WEB-INF lib和.classpath中
我对于不同的应用程序有类似的问题,并且在尝试了几次“排除”jar之后,我能够在WAS中成功部署应用程序。我有以下问题。
我们怎样才能确定所有jar需要在WEB-inf \ lib文件夹中出现?
我们如何确定所有罐子需要在战争meta-inf的.class路径中出现。
我们怎么能确定,即使罐子中的.classpath提及,但并非强制性的,它需要存在于WEB-INF \ lib中(即类加载器将拉动从耳朵而不是战争)的战争将工作
仅供参考我使用J2EE 1.4
嗨卡洛斯非常感谢您的建议。这是我正在运行的。 1.如果我是对的,那么在耳朵和战争中复制罐子都会导致课堂加载问题。 2.例如,如果我在我的web-inf lib中使用了struts.jar这样的jar,那么避免ear和war中的重复的最好方法是什么,因为struts可能会引入一些额外的传递依赖jar。所以如果我们排除其他传递性依赖关系在部署说明所需类之后失败,但在调用struts时不可用。我仍然有这个问题,我不知道如何解决这个问题。 – techrawther 2012-03-13 01:35:49
您的企业应用程序有多少个Web模块?如果它只有一个模块,那么最好的办法就是将Struts及其所有依赖关系放在WEB-INF库中,这样就不会混淆其他模块的类路径 – 2012-03-13 02:13:00
我有3个Web模块并复制了所有的jar文件所有的3个战争文件将会占用空间。 – techrawther 2012-03-15 01:26:18