Java struts2在jboss上的应用

Java struts2在jboss上的应用,java,jboss,struts,Java,Jboss,Struts,这是一个延续,但它的不同,我觉得它需要一个新的问题 在另一个问题中,我使用的是struts,但现在我使用的是struts 2。 教程分为struts教程和struts2教程 我发现需要将JAVA_HOME设置为指向jdk6,否则struts 2示例将无法工作。所以在eclipse中,我在我的JBoss服务器视图中添加了另一个JBoss服务器(我正在使用JBoss工具),并使其使用jdk1.6 我的问题是,这正常吗?Struts2是否需要jdk6 [编辑] 堆栈跟踪非常大,我将其第一部分粘贴到下面

这是一个延续,但它的不同,我觉得它需要一个新的问题

在另一个问题中,我使用的是struts,但现在我使用的是struts 2。 教程分为struts教程和struts2教程

我发现需要将JAVA_HOME设置为指向jdk6,否则struts 2示例将无法工作。所以在eclipse中,我在我的JBoss服务器视图中添加了另一个JBoss服务器(我正在使用JBoss工具),并使其使用jdk1.6

我的问题是,这正常吗?Struts2是否需要jdk6

[编辑] 堆栈跟踪非常大,我将其第一部分粘贴到下面:

2009-11-22 05:13:42,625 INFO  [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider] Parsing configuration file [struts.xml]
2009-11-22 05:13:42,890 DEBUG [com.opensymphony.xwork2.util.LocalizedTextUtil] Added default resource bundle 'org/apache/struts2/struts-messages' to default resource bundles = [org/apache/struts2/struts-messages, com/opensymphony/xwork2/xwork-messages]
2009-11-22 05:13:43,093 DEBUG [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider] Loaded [BUILDER] {PackageConfig Name:struts-default namespace: parents:[]}
2009-11-22 05:13:43,203 DEBUG [com.opensymphony.xwork2.validator.DefaultValidatorFactory] Loading validator definitions.
2009-11-22 05:13:43,281 DEBUG [com.opensymphony.xwork2.interceptor.I18nInterceptor] new I18nInterceptor()
2009-11-22 05:13:43,281 DEBUG [com.opensymphony.xwork2.interceptor.I18nInterceptor] new I18nInterceptor()
2009-11-22 05:13:43,296 DEBUG [com.opensymphony.xwork2.interceptor.I18nInterceptor] new I18nInterceptor()
2009-11-22 05:13:43,328 DEBUG [com.opensymphony.xwork2.config.providers.XmlConfigurationProvider] Loaded [BUILDER] {PackageConfig Name:convention-default namespace: parents:[{PackageConfig Name:struts-default namespace: parents:[]}]}
2009-11-22 05:13:43,500 ERROR [STDERR] java.lang.Exception: Could not load invoker/war/WEB-INF/classes/org/jboss/invocation/http/servlet/InvokerServlet$GetCredentialAction.class
2009-11-22 05:13:43,500 ERROR [STDERR]  at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:745)
2009-11-22 05:13:43,500 ERROR [STDERR]  at com.opensymphony.xwork2.util.finder.ClassFinder.<init>(ClassFinder.java:148)
2009-11-22 05:13:43,500 ERROR [STDERR]  at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:295)
2009-11-22 05:13:43,500 ERROR [STDERR]  at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:277)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52)
2009-11-22 05:13:43,515 ERROR [STDERR]  at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:200)
2009-11-22 05:13:43,515 ERROR [STDERR]  at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:48)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
2009-11-22 05:13:43,515 ERROR [STDERR]  at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3722)
2009-11-22 05:13:42625信息[com.opensymphony.xwork2.config.providers.XmlConfigurationProvider]解析配置文件[struts.xml]
2009-11-22 05:13:42890调试[com.opensymphony.xwork2.util.LocalizedTextUtil]将默认资源包“org/apache/struts2/struts messages”添加到默认资源包=[org/apache/struts2/struts messages,com/opensymphony/xwork2/xwork messages]
2009-11-22 05:13:43093调试[com.opensymphony.xwork2.config.providers.XmlConfigurationProvider]已加载[BUILDER]{PackageConfig名称:struts默认命名空间:父项:[]}
2009-11-22 05:13:43203调试[com.opensymphony.xwork2.validator.DefaultValidatorFactory]加载验证程序定义。
2009-11-22 05:13:43281调试[com.opensymphony.xwork2.interceptor.I18nInterceptor]新的I18nInterceptor()
2009-11-22 05:13:43281调试[com.opensymphony.xwork2.interceptor.I18nInterceptor]新的I18nInterceptor()
2009-11-22 05:13:43296调试[com.opensymphony.xwork2.interceptor.I18nInterceptor]新的I18nInterceptor()
2009-11-22 05:13:43328调试[com.opensymphony.xwork2.config.providers.XmlConfigurationProvider]已加载[BUILDER]{PackageConfig名称:约定默认命名空间:父项:[{PackageConfig名称:struts默认命名空间:父项:[]}
2009-11-22 05:13:43500错误[STDERR]java.lang.Exception:无法加载invoker/war/WEB-INF/classes/org/jboss/invocation/http/servlet/InvokerServlet$GetCredentialAction.class
2009-11-22 05:13:43500错误[STDERR]位于com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:745)
2009-11-22 05:13:43500错误[STDERR]位于com.opensymphony.xwork2.util.finder.ClassFinder.(ClassFinder.java:148)
2009-11-22 05:13:43500错误[STDERR]位于org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:295)
2009-11-22 05:13:43500错误[STDERR]位于org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:277)
2009-11-22 05:13:43515 org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52)上的错误[STDERR]
2009-11-22 05:13:43515 com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:200)上的错误[STDERR]
2009-11-22 05:13:43515错误[STDERR]位于com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
2009-11-22 05:13:43515 org.apache.struts2.dispatcher.dispatcher.init_预配置(dispatcher.java:360)上的错误[STDERR]
2009-11-22 05:13:43515错误[STDERR]位于org.apache.struts2.dispatcher.dispatcher.init(dispatcher.java:403)
2009-11-22 05:13:43515 org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)上的错误[STDERR]
2009-11-22 05:13:43515 org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter.init(strutspreadexecutefilter.java:48)上的错误[STDERR]
2009-11-22 05:13:43515 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)上的错误[STDERR]
2009-11-22 05:13:43515 org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)上的错误[STDERR]
2009-11-22 05:13:43515错误[STDERR]位于org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108)
2009-11-22 05:13:43515错误[STDERR]位于org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3722)

根据,只需要Java 5。我已经有一段时间没有使用Struts 2了,但几年前我在Tomcat+Java5中使用过它,没有遇到这个问题。不使用Java 6时会出现什么异常情况?

不,Struts 2不需要Java 6,只需要Java 5(甚至可以,但这是另一回事)

也就是说,根据您提供的跟踪,约定插件似乎试图干扰服务器中部署的其他元素,
invoker/war/WEB-INF/classes/org/jboss/invokation/http/servlet/InvokerServlet$GetCredentialAction.class
在您的例子中,它发现了一个它认为是动作的类。这实际上是JBoss4.2.3.GA和约定插件2.1.6的一个众所周知的问题。引用克里斯·沃格尔(Chris Vogel)的话,他面临着同样的问题(Weblogic):

如果你还没弄明白,我会告诉你我学到了什么。 Struts/XWorks扫描
操作
类,并通过扫描目录来实现 它是由类加载器提供的,而不仅仅是通过查看JAR文件。这个 您在堆栈跟踪中看到的PackageBasedActionConfigBuilder 调用当前线程上下文类的
getResources()
方法 loader,它返回该类的类路径中的目录 加载器。对于WebLogic,该调用实际上返回基本目录 WebLogic域的。
ClassFinder
类然后扫描所有 从
getResources()
方法返回的目录,该方法用于WebLogic 包括域的每个目录,并查找
Action
类。如果是 查找具有超类的类,它尝试加载该超类并 这就是我们实际看到的例外情况。我想知道JBoss的课程 loader正在做一个类似的t