0 Replies Latest reply on Jul 9, 2008 2:14 PM by roshan_ail

    deploying shared jars in jboss5

    roshan_ail

      I 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.