Resolved! Seems that JspTilesViewHandlerImpl was looking for a class which only exists in tiles 1.x. Thanks for your help M; you not only helped me solve my problem, but helped me learn how to troubleshoot. :-) Below is how I fixed it (so future users can look it up instead of asking).

I have the files in a lib folder and they're set up in the Netbeans project to be copied to WEB-INF/lib when the project is deployed. I tried copying them to the $tomcat-install-dir/lib which didn't make any difference (I thought parhaps they had to be loaded to do the deployment).

I checked in tiles-core-2.0.4.jar and found org.apache.tiles.definition.Definitions[[Factory]Exception].class

The last thing which is called in the stacktrace is org.apache.myfaces.config.FacesConfigurator.getApplicationObject() so I think the problem might actually be with org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl (since that's the class listed in my web.xml). I checked out the tomahawk jar file and found that, inaddition to JspTilesViewHandlerImpl.class, there was another class in the same package named JspTilesTwoViewHandlerImpl.class. Since I'm using Tiles 2.0.5, I figured this class which I haven't seen referenced anywhere on the Internet was worth a shot. I changed my faces-context.xml as such:
       <application>
<view-handler>org.apache.myfaces.tomahawk.application.jsp.JspTilesTwoViewHandlerImpl</view-handler>
       </application>

I shut down tomcat and started it back up and my application successfully deployed. It complained that I didn't have jstl support, but a quick download and that seems to be resolved. I still have some errors to work out, but they seem to be unrelated to myfaces or tiles. I appreciate the (very speedy) help.

Sincerely,
Adam

Madhav Bhargava wrote:
NoClassDefFoundError - This means that the class is found but some dependency 
is not found or there is a conflict. Make sure that all dependent jar files are 
present only once on the classpath.

Thanks,
M

--Adam says----------------------------------------------------------

Same results.  Thanks for the quick response though.
--Adam

Madhav Bhargava wrote:
You might want to register the listener in web.xml:

<listener>
        
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
-----------------------------------------------------------
I'm having some trouble understanding how to get Tiles working. I followed the directions on this page:
http://myfaces.apache.org/tomahawk/tiles.html

Now I've managed to prevent my project from deploying. Here's the stacktrace I get when I try to deploy: Dec 22, 2008 9:54:02 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.apache.myfaces.webapp.StartupServletContextListener java.lang.NoClassDefFoundError: org/apache/struts/tiles/DefinitionsFactoryException
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
        at java.lang.Class.getConstructor0(Class.java:2699)
        at java.lang.Class.getConstructor(Class.java:1657)
at org.apache.myfaces.config.FacesConfigurator.getApplicationObject(FacesConfigurator.java:741) at org.apache.myfaces.config.FacesConfigurator.configureApplication(FacesConfigurator.java:644) at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurator.java:277) at org.apache.myfaces.webapp.AbstractFacesInitializer.buildConfiguration(AbstractFacesInitializer.java:131) at org.apache.myfaces.webapp.Jsp21FacesInitializer.initContainerIntegration(Jsp21FacesInitializer.java:64) at org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:83) at org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:72) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:511) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1229)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1465) at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:821) at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:349)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: org.apache.struts.tiles.DefinitionsFactoryException at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 47 more

This is my faces-config.xml:
<faces-config version="1.2"
    xmlns="http://java.sun.com/xml/ns/javaee";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd";>

    <application>
<view-handler>org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl</view-handler>
    </application>
</faces-config>

and web.xml contains this:
<context-param>
    <param-name>tiles-definitions</param-name>
    <param-value>/WEB-INF/tiles.xml</param-value>
</context-param>

Since I don't think it gets far enough to read the tiles.xml file, I'll refrain from posting it and cluttering up this e-mail any further.

I'm using Tomahawk-1.1.8, myfaces-1.2.5, and tiles 2.0.5 (tiles-api-2.0.5.jar, tiles-core-2.0.5.jar, tiles-jsp-2.0.5.jar). I don't particularly want struts, I really just want the tiles support; but if including all of struts is the only answer, then so be it. I've checked the mailing list, but I could only find things related to JBoss and I/O errors. The three pages of google results which came up did not explain the cause of, nor solution to the exception which is being thrown. I'm posting the question on this list because I'm following the guide from myfaces.apache.org. If this is more of a question for the struts mailing list, please let me know.

Thank you,
Adam


**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***



Reply via email to