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

标签 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 中,并复制到域阶段文件夹下的 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/../mymanagementserver/tmp/_WL_user/myapp/4bdx7o/war/WEB-INF/classes”

感谢您的期待

最佳答案

我终于明白了这一点。罪魁祸首是我的 Eclipse 项目中的编译器合规级别。虽然我在项目构建路径中使用了 jdk1.7,但我还应该在 Eclipse 中检查项目编译器合规性版本,即 1.8(proj 右键单击​​> JavaCompiler> 我将其设置为 1.7)。 另外,我使用的是 javax.servlet-api-3.0.1.jar - 我切换到 servlet2.5,因为我在某处读到 weblogic10.3.x 仅兼容 servlet2.5。

我希望这可以帮助那些寻找类似问题解决方案的人。

关于java - 在weblogic 10.3.6上部署struts2.5 war文件时无法加载Action类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56278794/

相关文章:

jakarta-ee - weblogic 中的 2 路 ssl 到现有的 weblogic 实例 9.2 + 回归测试

java - 递归函数在数组中添加元素

java - Struts2 在 JSP 中从 session 映射迭代

jakarta-ee - Struts 2 中的客户端验证

java - Struts2-Rest : Manual HTTP 5xx doesn't return content

web-services - 调用 Web 服务时访问 Weblogic 中受密码保护的 WSDL

java - 访问消息驱动 Bean 中的 servlet 类

java - Java 8 中是否可以使用方法引用来定义/实现方法?

java - 删除循环链表中的第一个元素

java - 如果我将套接字从主 Activity 中分离出来,为什么它会抛出 IOException?