Hi All.
I'm workgin on JEE web application, using Struts2 with annotations and tiles
too.
I've an error:
- 2014-06-22 15:53:51,187 ERROR [org.apache.struts2.dispatcher.Dispatcher] -
<Dispatcher initialization failed>
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:446)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490)
at
org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
at
org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
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.run(FutureTask.java:262)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: The Result type [tiles] which is defined in the Result annotation on
the class [class mypackage.WelcomeAction] or determined by the file extension
or is the default result type for the PackageConfig of the action, could not be
found as a result-type defined for the Struts/XWork package
[mypackage#convention-default#/] - [unknown location]
at
org.apache.struts2.convention.DefaultResultMapBuilder.createResultConfig(DefaultResultMapBuilder.java:438)
at
org.apache.struts2.convention.DefaultResultMapBuilder.createFromAnnotations(DefaultResultMapBuilder.java:410)
at
org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:202)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:935)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:718)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:348)
at
org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:260)
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
Here is WelcomeAction class:
@Action(value = "menu",
results = {
@Result(name = SUCCESS, location = "/search", type=
"tiles"),
@Result(name=INPUT, location = "/index", type = "tiles"),
@Result(name = ERROR, location = "/index", type = "tiles")
}
)
And here are defintions in tiles.xml:
<definition name="baseLayout" template="/jsp/layout/BaseLayout.jsp">
<put-attribute name="title" value="" />
<put-attribute name="header" value="/jsp/header.jsp" />
<put-attribute name="menu" value="" />
<put-attribute name="body" value="" />
</definition>
<definition name="/index" extends="baseLayout">
<put-attribute name="title" value="Index" />
<put-attribute name="menu" value="/jsp/menu_index.jsp" />
<put-attribute name="body" value="/jsp/index.jsp" />
</definition>
<definition name="/search" extends="baseLayout">
<put-attribute name="title" value="Search" />
<put-attribute name="menu" value="/jsp/menu_index.jsp" />
<put-attribute name="body" value="/jsp/search.jsp" />
</definition>
Here is Struts.xml:
<struts>
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.convention.action.packages"
value="fr.itsystem.masyv.web" />
<constant name="struts.convention.package.locators"
value="action,actions,struts,struts2,web"/>
<constant name="struts.convention.action.suffix" value="Action" />
<constant name="struts.convention.action.mapAllMatches" value="true" />
<constant name="struts.convention.result.path" value="/WEB-INF/jsp" />
<constant name="struts.custom.i18n.resources" value="global" />
<package name="default" extends="struts-default">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
</package>
</struts>
Here are declarations of the context and listener of tiles in my web.xml:
<context-param>
<description>Tiles configuration file</description>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>
/WEB-INF/classes/tiles.xml
</param-value>
</context-param>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
Thank you a lot in advance.
Sincerly
Amine