2 Replies Latest reply on Oct 3, 2003 1:09 PM by Brian Compton

    Xerces not working

    anubha Newbie

      HI ,
      Trying to use xerces parser in Jboss 3.2.1 and it is giving me this error Jboss 4 is working

      17:40:02,225 ERROR [STDERR] Aug 4, 2003 5:40:02 PM org.apache.struts.action.RequestProcessor process

      INFO: Processing a 'POST' for path '/HomePage'

      17:40:02,225 INFO [STDOUT] Mode is Login

      17:40:02,241 INFO [STDOUT] ------in the LoginAction action class-***---

      17:40:02,241 INFO [STDOUT] ----in ReleaseAction sMode|||||---Login

      17:40:02,241 INFO [STDOUT] ------in the action class455----^^^^

      17:40:02,241 INFO [STDOUT] ------in the action class----^^^^001welcome--

      17:40:02,241 INFO [STDOUT] inside getLoginEJB method of interface

      17:40:02,256 INFO [STDOUT] ServiceLocator sBeanNameLoginSessionBean

      17:40:02,256 INFO [STDOUT] Inside Home Bundle$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

      17:40:02,303 WARN [jbossweb] WARNING: Error for /ECardsWeb/HomePage.do;jsessionid=8qoj6gc1iqi5

      java.lang.VerifyError: (class: com/churchill/internet/ecards/common/XMLBundle, method: getBundle signature: (Ljava/lang/String;)Lcom/churchill/internet/ecards/common/XMLBundle;) Incompatible object argument for function call

      at com.churchill.internet.ecards.common.Utility.getHomeDetails(Utility.java:180)

      at com.churchill.internet.ecards.common.ServiceLocator.getHome(ServiceLocator.java:34)

      at com.churchill.ecards.delegate.LoginActionInterface.getLoginEJB(LoginActionInterface.java:77)

      at com.churchill.ecards.delegate.LoginActionInterface.performLogin(LoginActionInterface.java:23)

      at com.churchill.Action.LoginAction.execute(LoginAction.java:72)

      at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446)

      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)

      at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)

      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:558)

      at org.mortbay.http.HttpContext.handle(HttpContext.java:1714)

      at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:507)

      at org.mortbay.http.HttpContext.handle(HttpContext.java:1664)

      at org.mortbay.http.HttpServer.service(HttpServer.java:863)

      at org.jboss.jetty.Jetty.service(Jetty.java:460)

      at org.mortbay.http.HttpConnection.service(HttpConnection.java:775)

      at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)

      at org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)

      at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)

      at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)

      at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)




      regards

        • 1. Re: Xerces not working
          Eli Newbie

          Hi anubha,
          I've got the same problem (JBoss3.2.1 , Xerces1_4_2)
          did u managed to solve your problem ?
          regards
          Eli

          • 2. Re: Xerces not working
            Brian Compton Newbie

            I have also ran into this problem, and I would like to share the steps to solve the issue.

            Description of my specific problem:

            I needed to deploy Selectica Configurator web application on JBoss 3.2.1. Selectica has a servlet that talks to its engine (runs in outside java process). The servlet uses an older version of Xerces than what JBoss has in its lib folder. So like you guys, I was getting the "verify error" because of version conflict.


            I did some searching and found that the versions were conflicting due to the default class loading mechanism in JBoss (UnifiedLoaderRepository). By default, classes are loaded only once and are available to all deployed applications. In this case, that is a bad thing since classes from the new version of Xerces was loaded before some of the old Xerces classes where loaded.

            Okay that's the problem... now the solution

            Solution:

            After reading about the Class Loading Architecture of JBoss 3.2 and doing some searches on this forum I found ways to turn on "classpath isolation" which would keep JBoss's Xerces version from conflicting with my web application's Xerces.

            I accomplished this by creating an EAR file with my web application in it. In the META-INF folder I placed a text file called "jboss-app.xml". It looks like this:

            <jboss-app>
            <loader-repository loaderRepositoryClass="org.jboss.mx.loading.HeirarchicalLoaderRepository3">
            testing.com:loader=selectica.ear
            <loader-repository-config configParserClass="org.jboss.mx.loading.HeirarchicalLoaderRepository3ConfigParser">
            java2ParentDelegaton=false
            </loader-repository-config>
            </loader-repository>
            </jboss-app>

            This configuration tells JBoss to create a separate repository for the application's classes and it also tells it to not look at the parent classloader when deciding to load a resource or retrieve an already loaded resource (this was the key setting).

            I then deployed the EAR file and everything worked fine.

            I know the solution has been documented before, but just in case someone is reading this thread...
            I hope this helps!