We have Struts 2, Spring 2.5.6 working peacefully together and


I wanted to add Tiles 2.2 on to the stack to experiment with it.

If I remember correctly, "tiles2.2.x & tiles2.1.x" does not support struts2!

You will have to use tiles2.0.7 instead. Otherwise, UnresolvingLocalDefinitionFactory Exception will arise.

--
Lu Ying


added dependencies in  maven and they are all
available. I am following the instructions on the Apache Tiles website
and created a Listener and everything. Here's my configuration.

*_Environment_* :

Tomcat 6.0.29
Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-10M3261)





_*My web.xml *_*:*
/
/
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
/
/
/* <listener>*/
/* <listener-class>com.blablabla.MyTilesListener</listener-class>*/
/* </listener>*/

*_Here's my /WEB-INF/tiles.xml_*
*_
_*
/ <definition name="doc.mainLayout"
template="/tiles/layout/classicLayout.jsp">/
/ <put-attribute name="title"  value="Electronic Submission of Medical
Documentation (esMD)" />/
/ <put-attribute name="header" value="/tiles/layout/tiles-header.jsp" />/
/ <put-attribute name="body"   value="/tiles/layout/tiles-body.jsp" />/
/ <put-attribute name="footer" value="/tiles/layout/tiles-footer.jsp" />/
/ </definition>/
/ /
/ <definition name="*_LoginPage_*" extends="doc.mainLayout">/
/ <put-attribute name="body" value="/tiles/LoginBody.jsp"/>/
/ </definition>/
/
/
/*_My struts.xml_*/
/
/
/
<package name="default" namespace="/" extends="struts-default"> <!--
"tiles-default" package cannot be found in tiles 2.2 so I changed it -->
/
<action name="Login">
/
/
/
/
<result>*_LoginPage_*</result>
/
/
</action>
/
</package>

/

/*_MyTilesListener_*/

public class MyTilesListener extends AbstractTilesListener {

     protected TilesInitializer createTilesInitializer() {
     return new MyCustomTilesInitializer();
}
}

*_MyCustomTilesInitializer_*

public class MyCustomTilesInitializer extends BasicTilesInitializer {

         /** {...@inheritdoc} */
         @Override
         protected AbstractTilesContainerFactory createContainerFactory(
                 TilesApplicationContext context) {
             return new MyTilesContainerFactory();
         }
}

*_MyTilesContainerFactory_*

public class MyTilesContainerFactory extends BasicTilesContainerFactory{
@Override
protected List<URL> getSourceURLs(TilesApplicationContext
tilesApplicationContext,
TilesRequestContextFactory tilesRequestContextFactory) {

List<URL> urls = null;

try {
urls = new ArrayList<URL>();

urls.add(tilesApplicationContext.getResource("/WEB-INF/tiles.xml"));
} catch(Exception exception) {

}

return urls;
}
}

*_This is the error we get: _*
*_
_*
*_


  HTTP Status 404 - /LoginPage

------------------------------------------------------------------------

*type* Status report

*message* _/LoginPage_

*description* _The requested resource (/LoginPage) is not available._

------------------------------------------------------------------------


      Apache Tomcat/6.0.29

_*

*_ServerLog _* :

388 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] INFO
org.apache.tiles.context.AbstractTilesApplicationContextFactory -
Initializing Tiles2 application context. . .
392 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] WARN
org.apache.tiles.context.ChainedTilesApplicationContextFactory - Cannot
find TilesContextFactory class
org.apache.tiles.portlet.context.PortletTilesApplicationContextFactory
392 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] INFO
org.apache.tiles.context.AbstractTilesApplicationContextFactory -
Finished initializing Tiles2 application context.
392 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] WARN
org.apache.tiles.context.ChainedTilesApplicationContextFactory - Cannot
find TilesContextFactory class
org.apache.tiles.portlet.context.PortletTilesApplicationContextFactory
449 [ContainerBackgroundProcessor[StandardEngine[Catalina]]] INFO
org.apache.tiles.access.TilesAccess - Publishing TilesContext for
context: org.apache.tiles.servlet.context.ServletTilesApplicationContext


Can someone give me a direction to fix this please. Thanks!


--
Cheers,
John

P.S: I also attached my pom.xml dependencies to give you a complete picture.

Reply via email to