deploying shared jars in jboss5
roshan_ail Jul 9, 2008 2:14 PMI originally posted this on the jboss5 forum at
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=138718
They recommended that I post it here.
So here is a recap of my problem
Here is how I have my project setup.
These are all maven 2 projects so dependency management is done automatically.
I have a few projects that get compiled into jars which contains common functions.
e.g. common.jar (Utility methods)
I have a web app which depends on common, spring and a few other libs.
My .m2/settings.xml file has a jboss.home variable defined.
my webapp's pom file is set to create a lean war basically I don't want to include any of the dependent libs into the web-inf/lib folder.
When I run mvn package on the webapp it copies all the dependencies
into the JBOSS_HOME/server/default/deploy/common-libs folder.
This setup works fine in 4.2.2.
After getting 5.0 CR1, I changed the jboss.home variable in my settings.xml and jusr reran the maven scripts.
I start up jboss and I get these errrors.4:43:30,927 INFO [TomcatDeployment] deploy, ctxPath=/semwebapp, vfsUrl=semwebapp.war 4:43:30,960 WARN [TomcatInjectionContainer] could not find servlet class org.springframework.web.servlet.DispatcherServlet in classpath when processing annotations. 4:43:30,977 WARN [TomcatInjectionContainer] could not find servlet class org.directwebremoting.servlet.DwrServlet in classpath when processing annotations. 4:43:31,034 WARN [TomcatInjectionContainer] could not find servlet class org.springframework.web.servlet.DispatcherServlet in classpath when processing annotations. 4:43:31,050 WARN [TomcatInjectionContainer] could not find servlet class org.directwebremoting.servlet.DwrServlet in classpath when processing annotations. 4:43:31,086 INFO [[/semwebapp]] Marking servlet springDispatcher as unavailable 4:43:31,093 ERROR [[/semwebapp]] Servlet /semwebapp threw load() exception ava.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer .java:162) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1006) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:950) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4074) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4384) at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeploy ment.java:346) at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.jav a:139) at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:431)
I would appreciate it if somebody could help me with this.
The recommendation is to put the jars into the JBOSS_HOME/server/default/lib folder.
I specifically didn't do this cos I wanted the libraries used my application to stay separated from the libraries that come standard with jboss.