在 weblogic 10.3.6 上部署 struts2.5 war 文件时无法加载操作 class
Unable to load Action class while deploying struts2.5 war file on weblogic 10.3.6
Unable to load Action error while deploying struts2 war file on weblogic 10.3.6
上述问题与我遇到的问题非常相似,但没有提供解决方案。
我在 struts2.5 中有一个应用程序,我已将其导出到 *.war 文件并尝试将其部署到 weblogic 10.3.6(运行 on java7)。
在部署过程中,我收到一个错误,指出未找到操作 class(当我可以在 war 文件的 WEB-INF/classes 中看到它时)。
正如 user3898783 在上面提到的 link-“weblogic 在
WAR 部署(显然它在内部爆炸)它将驻留在 web-inf/classes 文件夹中的所有文件放入名为 _wl_cls_gen.jar 文件的 jar 中,并复制到域阶段文件夹下的 web-inf/lib 目录中。”-类似的是我的问题。
我目前正在 wls:prefer-web-inf-classes"true" /wls:prefer-web-inf-classes 配置 weblogic.xml 文件并没有真正解决我的问题。
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 操作 class 映射,显然它无法在 weblogic 下找到“../domains/../mymanagedserver/tmp/_WL_user/myapp/4bdx7o/war/WEB-INF/classes”
感谢期待
我终于弄明白了。罪魁祸首是我的 eclipse 项目中的编译器合规性级别。尽管我在项目构建路径中使用的是 jdk1.7,但我还应该检查 Eclipse 中的项目编译器合规版本 1.8(项目右键单击 > JavaCompiler> 我将其设置为 1.7)。
另外,我使用的是 javax.servlet-api-3.0.1.jar - 当我在某处读到 weblogic10.3.x 仅兼容 servlet2.5 时,我切换到了 servlet2.5。
我希望这对寻找类似问题解决方案的人有所帮助。
Unable to load Action error while deploying struts2 war file on weblogic 10.3.6
上述问题与我遇到的问题非常相似,但没有提供解决方案。 我在 struts2.5 中有一个应用程序,我已将其导出到 *.war 文件并尝试将其部署到 weblogic 10.3.6(运行 on java7)。 在部署过程中,我收到一个错误,指出未找到操作 class(当我可以在 war 文件的 WEB-INF/classes 中看到它时)。
正如 user3898783 在上面提到的 link-“weblogic 在 WAR 部署(显然它在内部爆炸)它将驻留在 web-inf/classes 文件夹中的所有文件放入名为 _wl_cls_gen.jar 文件的 jar 中,并复制到域阶段文件夹下的 web-inf/lib 目录中。”-类似的是我的问题。 我目前正在 wls:prefer-web-inf-classes"true" /wls:prefer-web-inf-classes 配置 weblogic.xml 文件并没有真正解决我的问题。
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 操作 class 映射,显然它无法在 weblogic 下找到“../domains/../mymanagedserver/tmp/_WL_user/myapp/4bdx7o/war/WEB-INF/classes”
感谢期待
我终于弄明白了。罪魁祸首是我的 eclipse 项目中的编译器合规性级别。尽管我在项目构建路径中使用的是 jdk1.7,但我还应该检查 Eclipse 中的项目编译器合规版本 1.8(项目右键单击 > JavaCompiler> 我将其设置为 1.7)。 另外,我使用的是 javax.servlet-api-3.0.1.jar - 当我在某处读到 weblogic10.3.x 仅兼容 servlet2.5 时,我切换到了 servlet2.5。
我希望这对寻找类似问题解决方案的人有所帮助。