首页 > 代码库 > 解决weblogic下通过war加载jar包中的struts的action找不到的问题

解决weblogic下通过war加载jar包中的struts的action找不到的问题

今天在功能测试环境中weblogic上部署应用时,启动后报错,说是spring找不到对应的action,所以怀疑是类加载的问题,找度娘一搜,果然是猜的没错,找到解决方法:

1. 将struts.xml加入:  

    <constant name="struts.convention.action.includeJars" value=http://www.mamicode.com/".*你的jar包名.*" />

然后启动正常,但登陆后找不到struts的action.在开发环境中明显是可以的,而且在tomcat中打包war也是可以用的,但部署到weblogic中就不可以了,所以认为还是类加载的问题,再问了一下度娘,答案如下:

1. 将struts.xml加入
<constant name="struts.convention.action.fileProtocols" value=http://www.mamicode.com/"jar,zip" />

修改为:
<constant name="struts.convention.action.includeJars" value=http://www.mamicode.com/".*你的jar包名.*,.*?/_wl_cls_gen.*?jar(!/)?"/>

许多解决此问题的文章并没有提到多个jar的问题,如果有多个jar要加载,需要用逗号分开

2. Ant打包时,war任务的属性manifest一定要写上


然后打包,部署,启动正常,打开页面登陆后,操作,一切ok,看来weblogic真是有点不太好搞啊,坑挺多。



解决weblogic下通过war加载jar包中的struts的action找不到的问题