在Weblogic 10.3.6上部署struts2.5 war文件时无法加载Action类

时间:2019-05-23 15:43:13

标签: java struts2 weblogic war weblogic-10.x

Unable to load Action error while deploying struts2 war file on weblogic 10.3.6

以上问题与我面临的问题非常相似,但是没有提供解决方案。     我在struts2.5中有一个应用程序,该应用程序已导出到* .war文件,并尝试将其部署到weblogic 10.3.6(在java7上运行)。     在部署过程中,我收到一个错误消息,即未找到Action类(当我看到它出现在war文件的WEB-INF / classes中)。

如上链接中的user3898783所述-“ weblogic在 WAR部署(显然会在内部爆炸)将所有文件都驻留在web-inf / classes文件夹中放入名为_wl_cls_gen.jar的jar文件中,并复制到domain stage文件夹下的web-inf / lib目录中。”-类似的是我的问题。 我目前在我的weblogic.xml文件中使用wls:prefer-web-inf-classes“ true” / wls:prefer-web-inf-classes配置,但实际上并没有解决我的问题。

Weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
     <wls:container-descriptor>
        <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
     </wls:container-descriptor>


    <wls:session-descriptor> 
        <wls:cookies-enabled>true</wls:cookies-enabled>
     </wls:session-descriptor>

</wls:weblogic-web-app>

<May 23, 2019 1:00:02 AM CDT> <Error> <HTTP> <BEA-101165> <Could not load user defined filter in web.xml: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.
Unable to load configuration. - action - zip:/apps/bea/wls103/user_projects/domains/mydomain/servers/mymanagedserver/tmp/_WL_user/myapp/4bdx7o/war/WEB-INF/lib/_wl_cls_gen.jar!/struts.xml:16:97
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:509)
        at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73)
        at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61)
        at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:343)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        Truncated. see log file for complete stacktrace
Caused By: Unable to load configuration. - action - zip:/apps/bea/wls103/user_projects/domains/mydomain/servers/mymanagedserver/tmp/_WL_user/myapp/4bdx7o/war/WEB-INF/lib/_wl_cls_gen.jar!/struts.xml:16:97
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
        at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496)
        at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73)
        Truncated. see log file for complete stacktrace
Caused By: Action class [com.myapp.struts.actions.LoginAction] not found - action - zip:/apps/bea/wls103/user_projects/domains/mydomain/servers/mymanagedserver/tmp/_WL_user/myapp/4bdx7o/war/WEB-INF/lib/_wl_cls_gen.jar!/struts.xml:16:97
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:508)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:457)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:572)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:326)
        at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:108)
        Truncated. see log file for complete stacktrace
>

我检查了我的struts.xml(struts.xml:16:97)-它指向LoginAction操作类映射,显然它无法在weblogic“ ../domains/../mymanagedserver”下找到/ tmp / _WL_user / myapp / 4bdx7o / war / WEB-INF / classes“

感谢您的期待

1 个答案:

答案 0 :(得分:0)

最后,我能够弄清楚这一点。罪魁祸首是我的Eclipse项目中的编译器合规性级别。尽管我在项目构建路径中使用jdk1.7,但我还应该在Eclipse中检查项目编译器的遵从性版本为1.8(项目,右键单击> JavaCompiler>,将其设置为1.7)。 另外,我使用的是javax.servlet-api-3.0.1.jar-当我读到某个Weblogic10.3.x仅兼容servlet2.5时,我切换到servlet2.5。

我希望这对寻求类似问题解决方案的人有所帮助。