在jboss中使用struts 2的注释找不到操作

在jboss中使用struts 2的注释找不到操作,jboss,struts2,annotations,action,convention,Jboss,Struts2,Annotations,Action,Convention,该应用程序使用Jboss,有一个ear文件,其中包含一个war文件和一个jar文件。战争影响了我们所有的网页。我注释的动作类位于ear中的jar文件中。在我的谷歌搜索中,我使用以下常量设置了struts.xml文件: <constant name="struts.convention.action.fileProtocols" value="ear,jar,vfsfile,vfszip" /> <constant name="struts.convention.action.d

该应用程序使用Jboss,有一个ear文件,其中包含一个war文件和一个jar文件。战争影响了我们所有的网页。我注释的动作类位于ear中的jar文件中。在我的谷歌搜索中,我使用以下常量设置了struts.xml文件:

<constant name="struts.convention.action.fileProtocols" value="ear,jar,vfsfile,vfszip" />
<constant name="struts.convention.action.disableJarScanning" value="false"/>
<constant name="struts.convention.action.includeJars" value=".*/lightspeed.*?jar(!/)?,.*/lightspeed*?jar(!/)?,.*lightspeed.*?jar(!/)?,.*lightspeed*?jar(!/)?" />
在这段代码之后,我得到了大约200多个URL。然后通过以下代码:

if (excludeParentClassLoader) {
urlSet = urlSet.includeClassesUrl(classLoaderInterface);
这个条件块删除了我所有的URL,因为我想它们都来自jboss,并且我已经将excludeParentClassLoader设置为true。然后点击以下代码:

if (excludeParentClassLoader) {
urlSet = urlSet.includeClassesUrl(classLoaderInterface);
在此之后,我在urlset中获得一个url:

文件:/C:/evolution/trunk/powersports/jboss/server/dms/deploy/http invoker.sar/invoker.war=文件:/C:/evolution/trunk/powersports/jboss/server/dms/deploy/http-invoker.sar/invoker.war

现在它终于到达了包含jar include regex的部分

List<URL> rawIncludedUrls = urlSet.getUrls();
Set<URL> includeUrls = new HashSet<URL>();
boolean[] patternUsed = new boolean[includeJars.length];

for (URL url : rawIncludedUrls) {

因为url集中有1个url,而我的JAR不在那里,所以它找不到它们。在运行regex比较代码之前,如何让我的url显示在该url集中,我肯定还缺少其他东西,我只是不知道那是什么,我不确定您需要在Jboss的struts.xml文件中包含以下内容

<constant name="struts.convention.exclude.parentClassLoader" value="true" />
有关详细信息,请参阅插件页面

默认情况下,约定插件不会扫描jar文件以进行操作。对于要扫描的jar,其URL需要至少匹配struts.convention.action.includeJars中的一个正则表达式


您的struts.xml.Convention插件中已经有include jar列表,它将根据jar的URL而不是文件名来计算正则表达式。

我尝试过这样做,以为它会得到我的jar URL,但当它查看要包含jar的正则表达式时,它的URL列表中没有该URL可供查看。在我的上述问题中,我有一个关于约定插件代码的详细解释。