struts2使用Convention Plugin在weblogic上以war包部署时,找不到Action的解决办法

时间:2022-04-23
本文章向大家介绍struts2使用Convention Plugin在weblogic上以war包部署时,找不到Action的解决办法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

环境: struts 2.3.16.3 + Convention Plugin 2.3.16.3 实现零配置

现象:以文件夹方式部署在weblogic(10.3.3)上时一切正常,换成war包部署,运行时提示找不到Action

解决办法:

1. 检查生成的war包中WEB-INFclasses下有无META-INF目录,如果没有,在eclipse里resourceMETA-INF下随便放一个文件,比如test.xml,这样maven打包生成war包时,才会在classes下创建META-INF目录

2.struts.xml中增加二个常量

    <constant name="struts.convention.action.fileProtocols" value="jar,zip" />
    <constant name="struts.convention.action.includeJars" value=".*?/_wl_cls_gen.*?jar(!/)?" />

注:如果要weblogic/jboss通杀的话,可以再加一个常量 ,即共增加3个常量

1     <constant name="struts.convention.action.includeJars" value=".*?/_wl_cls_gen.*?jar(!/)?" />     
2     <constant name="struts.convention.exclude.parentClassLoader" value="true" />
3     <constant name="struts.convention.action.fileProtocols" value="jar,zip,vfsfile,vfszip" />

示例:struts-spring-rest.zip