Java Struts 2中的操作默认包

Java Struts 2中的操作默认包,java,inheritance,configuration,struts2,package,Java,Inheritance,Configuration,Struts2,Package,是否有与Struts2关联的操作默认值之类的包 我不确定它来自哪个jar(struts核心或插件),但多年来它一直驻留在我的struts.xml中。我们使用了struts-core-2.1.8 我将struts版本更新为2.3.8,struts开始抱怨 SEVERE: Exception starting filter struts2-prepare Unable to load configuration. - [unknown location] at org.apache.stru

是否有与Struts2关联的
操作默认值
之类的包

我不确定它来自哪个jar(struts核心或插件),但多年来它一直驻留在我的
struts.xml
中。我们使用了struts-core-2.1.8

我将struts版本更新为2.3.8,struts开始抱怨

SEVERE: Exception starting filter struts2-prepare
Unable to load configuration. - [unknown location]
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:483)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.init(StrutsPrepareFilter.java:50)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4656)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5312)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: Unable to load configuration. - [unknown location]
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:471)
    ... 15 more
Caused by: Parent package is not defined: action-default - [unknown location]
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildPackageContext(XmlConfigurationProvider.java:660)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:508)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:290)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:239)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
    ... 17 more
使用的Struts相关JAR的工件Id:

  • 支柱2核心2.1.8
  • struts2约定插件2.1.8
  • struts2弹簧插件2.1.8
  • struts2gwtplugin 0.2.1
  • struts2 jfreechart插件2.1.6
  • struts2 jquery插件3.5.0
  • struts2 json插件2.1.8.1
  • 对于上述所有JAR,struts没有抱怨“ActionDefault”包

    将以下JAR更新到2.3.8版后,struts开始抱怨包丢失

  • 支柱2核心2.3.8
  • struts2约定插件2.3.8
  • struts2弹簧插件2.3.8
  • struts2 json插件2.3.8

  • Struts默认配置中没有这样的包名
    action default
    ,包名是
    Struts default
    。更改您的包扩展的包的名称。

    我也遇到了同样的问题,但在下面列出的JAR中工作正常

    commons-fileupload-1.3.2.jar commons-io-2.2.jar commons-lang3-3.2.jar commons-logging-1.1.3.jar freemarker-2.3.22.jar javassist-3.11.0.GA.jar ognl-3.0.19.jar struts2-core-2.3.30.jar struts2-json-plugin-2.3.30.jar xwork-core-2.3.30.jar

    我的STRUTS.XML看起来像

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
    <package name="default" extends="json-default">
        <action name="angularAction" class="com.action.AngularAction">
            <result type="json">
              <param name="root">personData</param>
              <param name="excludeNullProperties">true</param>
              <param name="noCache">true</param>
            </result>
        </action>
    </package>
    </struts>
    
    
    人猿
    真的
    真的
    
    • 尊敬的辛格先生

    发布您的
    struts.xml
    。张贴你的电脑中所有Struts2罐子的版本project@AndreaLigios,编辑了我的帖子,以使配置更加清晰,将Roman C的答案标记为正确,尽管它没有为我提供准确/直接的答案,他建议的工具非常酷,有助于分析。我还可以看到,在所有jar中都没有这样的包定义。请查看我的最新编辑,并请您提供证据证明它在v2.1.8中是如何工作的。感谢您的回复您可以自己做,检查jar中的配置文件并找到名称为的包,或者最好添加配置浏览器插件并在线检查配置。它在web上的一些随机位置出现,并且在Struts2 doc中仅出现一次:
    。这可能是个错误。。。或者它可能存在于旧图书馆中,不再存在,但它似乎很奇怪+我对这个问题很感兴趣。你的老板会给你-1分,因为你多年来使用了错误的软件包:D
    struts default
    是你想要的。@AndreaLigios,谢谢你的评论。由于“ActionDefault”似乎不是一个有效的包,我将删除它。谢谢你们的帮助
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
    <package name="default" extends="json-default">
        <action name="angularAction" class="com.action.AngularAction">
            <result type="json">
              <param name="root">personData</param>
              <param name="excludeNullProperties">true</param>
              <param name="noCache">true</param>
            </result>
        </action>
    </package>
    </struts>