Java – action-default package in Struts 2

configurationinheritancejavapackagestruts2

Is there a package like action-default associated with Struts2 ?

I am not sure which jar(struts-core or plugins) it comes from but it was residing in my struts.xml for years. We had used struts-core-2.1.8.

I updated the struts version to 2.3.8 and struts started complaining,

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

I couldn't find any references for action-default package. Could anybody please help me figure out what is available in action-default package and the alternatives in Struts 2.3.8.

EDIT:

I couldn't post the complete struts.xml, it's too long. The package declaration is as below,

<package name="default" extends="struts-default,jfreechart-default,json-default,action-default">

Artifact Id of Struts related jars used:

  1. struts2-core 2.1.8
  2. struts2-convention-plugin 2.1.8
  3. struts2-spring-plugin 2.1.8
  4. struts2gwtplugin 0.2.1
  5. struts2-jfreechart-plugin 2.1.6
  6. struts2-jquery-plugin 3.5.0
  7. struts2-json-plugin 2.1.8.1

With all the above mentioned jars struts didn't complain about the "action-default" package.

After updating the following jars to version 2.3.8, struts starts complaining that the package is missing,

  1. struts2-core 2.3.8
  2. struts2-convention-plugin 2.3.8
  3. struts2-spring-plugin 2.3.8
  4. struts2-json-plugin 2.3.8

Best Answer

There's no such package name action-default in the Struts default configuration the package name is struts-default. Change the name of the package which your package extends.

Related Topic