I'm running into trouble migrating my existing web application from
WebWork 2.2.2 to Struts 2.0.9. We are using JSE6 (AKA JDK 1.6) and
Tomcat 5.5.17. I did everything mentioned on the wiki plus a bunch
more stuff:

http://struts.apache.org/2.x/docs/webwork-2-migration-strategies.html

If I ever get this working I promise to provide feedback to update
this page based on my experiences migrating to Struts 2.0.9. To set
things up, I was fairly quickly able to get to the point that I had a
clean build of my webapp after swapping out WebWork and swapping in
Struts 2.0.9. Hard as it may be to believe, we were not using Spring
IoC. I had that turned off in my webwork.properties like so:

### Configuration for IoC Container
### webwork.objectFactory=spring

However, it appears that S2 really wants some IoC container because I
kept getting complaints with this commented out. So, I uncommented it
in my renamed struts. properties file (added necessary listener in
web.xml too) and included the latest Spring Framework jar file
(2.0.6). This in turn gave me complaints about missing ActiveMQ
classes and including the main jar file for latest ActiveMQ (4.1.1)
didn't seem to help. That catches everyone up to my current situation.
Here is the full console log output for my latest failed webapp
startup:

<CONSOLE-OUTPUT>

cmd /c C:\java\apache-tomcat-5.5.17\bin\catalina.bat run
Using CATALINA_BASE:   C:\Documents and
Settings\van\.IntelliJIdea60\system\tomcat_Unnamed_7c1b22c1
Using CATALINA_HOME:   C:\java\apache-tomcat-5.5.17
Using CATALINA_TMPDIR:
C:\svn\head\dev\projects\krillion\dist\catalina_bases\browser\dev\temp
Using JRE_HOME:        C:\java\jdk1.6.0
Connected to the target VM, address: '127.0.0.1:1866', transport: 'socket'
Aug 3, 2007 4:11:03 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8000
Aug 3, 2007 4:11:03 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8002
Aug 3, 2007 4:11:03 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 640 ms
Aug 3, 2007 4:11:03 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Aug 3, 2007 4:11:03 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.17
Aug 3, 2007 4:11:03 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
16:11:07,218  INFO [/]: Initializing Spring root WebApplicationContext
16:11:07,218  INFO ContextLoader: Root WebApplicationContext:
initialization started
16:11:07,296  INFO XmlWebApplicationContext: Refreshing
[EMAIL PROTECTED]:
display name [Root WebApplicationContext]; startup date [Fri Aug 03
16:11:07 PDT 2007]; root of context hierarchy
16:11:07,500  INFO XmlBeanDefinitionReader: Loading XML bean
definitions from ServletContext resource
[/WEB-INF/applicationContext.xml]
16:11:07,718  INFO XmlWebApplicationContext: Bean factory for
application context
[EMAIL PROTECTED]:
[EMAIL PROTECTED]
16:11:07,812  INFO DefaultListableBeanFactory: Pre-instantiating
singletons in [EMAIL PROTECTED]:
defining beans 
[connectionFactory,messageworkDestination,jmsTemplate,mapMessageFactory,textMessageFactory,actionMessageSender];
root of factory hierarchy
16:11:07,812  INFO DefaultListableBeanFactory: Destroying singletons
in [EMAIL PROTECTED]:
defining beans 
[connectionFactory,messageworkDestination,jmsTemplate,mapMessageFactory,textMessageFactory,actionMessageSender];
root of factory hierarchy
16:11:07,828 ERROR ContextLoader: Context initialization failed
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot
find class [org.codehaus.activemq.ActiveMQConnectionFactory] for bean
with name 'connectionFactory' defined in ServletContext resource
[/WEB-INF/applicationContext.xml]; nested exception is
java.lang.ClassNotFoundException:
org.codehaus.activemq.ActiveMQConnectionFactory
Caused by:
java.lang.ClassNotFoundException:
org.codehaus.activemq.ActiveMQConnectionFactory
        at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
        at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
        at org.springframework.util.ClassUtils.forName(ClassUtils.java:201)
        at 
org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:327)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1075)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:282)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at 
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
        at 
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
        at 
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
        at 
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:450)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
        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.catalina.startup.Bootstrap.start(Bootstrap.java:294)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
16:11:07,843 ERROR [/]: Exception sending context initialized event to
listener instance of class
org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot
find class [org.codehaus.activemq.ActiveMQConnectionFactory] for bean
with name 'connectionFactory' defined in ServletContext resource
[/WEB-INF/applicationContext.xml]; nested exception is
java.lang.ClassNotFoundException:
org.codehaus.activemq.ActiveMQConnectionFactory
Caused by:
java.lang.ClassNotFoundException:
org.codehaus.activemq.ActiveMQConnectionFactory
        at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
        at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
        at org.springframework.util.ClassUtils.forName(ClassUtils.java:201)
        at 
org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:327)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1075)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:282)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at 
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
        at 
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
        at 
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
        at 
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
        at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
        at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
        at 
org.apache.catalina.core.StandardService.start(StandardService.java:450)
        at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
        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.catalina.startup.Bootstrap.start(Bootstrap.java:294)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Aug 3, 2007 4:11:07 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Aug 3, 2007 4:11:07 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [] startup failed due to previous errors
16:11:07,859  INFO [/]: Closing Spring root WebApplicationContext
Aug 3, 2007 4:11:08 PM org.apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8000
Aug 3, 2007 4:11:08 PM org.apache.coyote.ajp.AjpAprProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8002
Aug 3, 2007 4:11:08 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4969 ms

</CONSOLE-OUTPUT>

The peculiar thing about this failure is that it is complaining about
not being able to load this class:

org.codehaus.activemq.ActiveMQConnectionFactory

When I crack open the latest ActiveMQ jar from Apache site, there is
an ActiveMQConnectionFactory class. However, it is packaged like so:

org.apache.activemq.ActiveMQConnectionFactory

I am beginning to spin my wheels on this. Any pointers or suggestions
would be much appreciated. If I can't figure this out, I may have to
admit defeat and switch to Rails development. ;-)

-Van

Mike Van Riper
[EMAIL PROTECTED]

Silicon Valley Web Developer JUG
https://sv-web-jug.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to