You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Hari C <ha...@gmail.com> on 2008/04/23 07:16:47 UTC

Client Jars conflicting - Work around

Hi all

I am really stuck with the stax-api.jar conflicting with weblogic.jar.I know
that this problem is posted before in this forum.The solutions which are
told are not solving my problem.I have explained it towards the end of the
mail.  My webservice client is throwing following error during runtime

<Apr 23, 2008 12:03:01 PM EST> <Error> <HTTP> <BEA-101017>
<[ServletContext(id=12698664,name=fflyer,context-path=/fflyer)] Root cause
of ServletExcepti
on.
java.lang.NoSuchMethodError:
javax.xml.namespace.QName.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

        at
au.com.qantas.fflyer.loyaltypointsconverter.services.AnySeatRedemptionServiceStub$GetAnySeatParameters.<clinit>(AnySeatRedemptionServiceStub

.java:1885)
        at
au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.createAnySeatParamResponse(ASRBookingConversionHelper.java:90)

        at
au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.getConversionStr(ASRBookingConversionHelper.java:65)

        at
au.com.qantas.asrbooking.tripflow.impl.ASRPointsConverterAccessorImpl.getConvertionString(ASRPointsConverterAccessorImpl.java:26)

        at
au.com.qantas.asrbooking.tripflow.impl.ASRSelectionAccessorImpl.getConversionData(ASRSelectionAccessorImpl.java:328)

        at
au.com.qantas.asrbooking.tripflow.ASRTripflowExecutionContext.<init>(ASRTripflowExecutionContext.java:64)

        at
au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.generateTripflow(ASRBookingSearchBusinessDelegate.java:89)

        at
au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.getTripflowURL(ASRBookingSearchBusinessDelegate.java:53)

        at
au.com.qantas.asrbooking.application.ASRBookingSearchAction.execute(ASRBookingSearchAction.java:183)

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

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

        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)

        at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)

        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)

        at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
        at
au.com.qantas.ecomm.registration.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:104)

        at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
        at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)

        at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

        at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)

        at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)

        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>



The solutions which i know are

1. Adding the stax-api.jar before weblogic.jar in the startup script.

 I cant implement this solution because i have lot of applications working
inside the same ear and client is not permitting this configuraton change as
this may affect the other systems


2.Make <prefer-web-inf-classes> to true forcing weblogic to pick the jars
from the webinf lib

 This also creates problem for me as other applications running inside the
server is expectting so many jars from the server class path.


I cant apply these two solutions, could any one suggest some other work
around. Does it mean that we cant have axis client running in weblogic if
some other applications are also running.Hope this is not the case and some
other better solution is there.
Regards

Hari


-- 
Hari.C

Re: Client Jars conflicting - Work around

Posted by Brennan Spies <br...@sbcglobal.net>.
Hari,

If using <prefer-web-inf-classes> is not working, then (assuming you have Weblogic v. 9.2 or later) you might want to try using a filtering classloader

http://edocs.bea.com/wls/docs92/programming/classloading.html#wp1097187


  ----- Original Message ----- 
  From: Hari C 
  To: axis-user@ws.apache.org 
  Sent: Wednesday, April 23, 2008 5:50 PM
  Subject: Re: Client Jars conflicting - Work around


  Hi Faraz,

  Thnakyou very much for the reply. I think this option of PARENT_FIRST is available in websphere and iam using weblogic app server. Even if it is there it wont solve my problem becuase that will affect other jars(applications) running inside the same WAR. I was wondering why this conflict is happening. I have noticed that the QName(String;String;String;)in stax-api.jar is having 3 parameters and the one used inside weblogic.jar is having only two.

  Is it something like we cant have Axis client if other applications running inside weblogic are using server classpath jars?. I thought it is a cake walk implementing the client.

  Regards

  Hari Pillai


  On Wed, Apr 23, 2008 at 6:25 PM, faraz masood <fa...@gmail.com> wrote:

    Hi Hari,

    Have you tried changing the class loader policies for your EAR .

    somewhere in your deployment.xml 

    <

    deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1207830167461" startingWeight="1" warClassLoaderPolicy="SINGLE"> 
    change this to MULTIPLE 


    <classloader xmi:id="Classloader_1207830167461" mode="PARENT_FIRST"/> 
    change this to PARENT_LAST 

    Best Regards, 
    /Faraz


    On Wed, Apr 23, 2008 at 7:16 AM, Hari C <ha...@gmail.com> wrote:


      Hi all

      I am really stuck with the stax-api.jar conflicting with weblogic.jar.I know that this problem is posted before in this forum.The solutions which are told are not solving my problem.I have explained it towards the end of the mail.  My webservice client is throwing following error during runtime

      <Apr 23, 2008 12:03:01 PM EST> <Error> <HTTP> <BEA-101017> <[ServletContext(id=12698664,name=fflyer,context-path=/fflyer)] Root cause of ServletExcepti 
      on. 
      java.lang.NoSuchMethodError: javax.xml.namespace.QName.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 
              at au.com.qantas.fflyer.loyaltypointsconverter.services.AnySeatRedemptionServiceStub$GetAnySeatParameters.<clinit>(AnySeatRedemptionServiceStub 
      .java:1885) 
              at au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.createAnySeatParamResponse(ASRBookingConversionHelper.java:90) 
              at au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.getConversionStr(ASRBookingConversionHelper.java:65) 
              at au.com.qantas.asrbooking.tripflow.impl.ASRPointsConverterAccessorImpl.getConvertionString(ASRPointsConverterAccessorImpl.java:26) 
              at au.com.qantas.asrbooking.tripflow.impl.ASRSelectionAccessorImpl.getConversionData(ASRSelectionAccessorImpl.java:328) 
              at au.com.qantas.asrbooking.tripflow.ASRTripflowExecutionContext.<init>(ASRTripflowExecutionContext.java:64) 
              at au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.generateTripflow(ASRBookingSearchBusinessDelegate.java:89) 
              at au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.getTripflowURL(ASRBookingSearchBusinessDelegate.java:53) 
              at au.com.qantas.asrbooking.application.ASRBookingSearchAction.execute(ASRBookingSearchAction.java:183) 
              at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 
              at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 
              at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
              at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) 
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) 
              at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) 
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) 
              at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) 
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
              at au.com.qantas.ecomm.registration.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:104) 
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724) 
              at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
              at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764) 
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644) 
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) 
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) 
      > 



      The solutions which i know are 

      1. Adding the stax-api.jar before weblogic.jar in the startup script.

       I cant implement this solution because i have lot of applications working inside the same ear and client is not permitting this configuraton change as this may affect the other systems


      2.Make <prefer-web-inf-classes> to true forcing weblogic to pick the jars from the webinf lib

       This also creates problem for me as other applications running inside the server is expectting so many jars from the server class path.


      I cant apply these two solutions, could any one suggest some other work around. Does it mean that we cant have axis client running in weblogic if some other applications are also running.Hope this is not the case and some other better solution is there.

      Regards

      Hari


      -- 
      Hari.C 





  -- 
  Hari.C 

Re: Client Jars conflicting - Work around

Posted by Hari C <ha...@gmail.com>.
Hi Faraz,

Thnakyou very much for the reply. I think this option of PARENT_FIRST is
available in websphere and iam using weblogic app server. Even if it is
there it wont solve my problem becuase that will affect other
jars(applications) running inside the same WAR. I was wondering why this
conflict is happening. I have noticed that the
QName(String;String;String;)in stax-api.jar is having 3 parameters and the
one used inside weblogic.jar is having only two.

Is it something like we cant have Axis client if other applications running
inside weblogic are using server classpath jars?. I thought it is a cake
walk implementing the client.

Regards

Hari Pillai

On Wed, Apr 23, 2008 at 6:25 PM, faraz masood <fa...@gmail.com> wrote:

> Hi Hari,
>
> Have you tried changing the class loader policies for your EAR .
>
> somewhere in your deployment.xml
>
>
> <
> deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1207830167461"
> startingWeight="1" warClassLoaderPolicy="SINGLE">
> change this to MULTIPLE
>
> <classloader xmi:id="Classloader_1207830167461" mode="PARENT_FIRST"/>
> change this to PARENT_LAST
> Best Regards,
> /Faraz
>
>   On Wed, Apr 23, 2008 at 7:16 AM, Hari C <ha...@gmail.com>
> wrote:
>
> >
> > Hi all
> >
> > I am really stuck with the stax-api.jar conflicting with weblogic.jar.I
> > know that this problem is posted before in this forum.The solutions which
> > are told are not solving my problem.I have explained it towards the end of
> > the mail.  My webservice client is throwing following error during runtime
> >
> > <Apr 23, 2008 12:03:01 PM EST> <Error> <HTTP> <BEA-101017>
> > <[ServletContext(id=12698664,name=fflyer,context-path=/fflyer)] Root cause
> > of ServletExcepti
> > on.
> > java.lang.NoSuchMethodError:
> > javax.xml.namespace.QName.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
> >
> >         at
> > au.com.qantas.fflyer.loyaltypointsconverter.services.AnySeatRedemptionServiceStub$GetAnySeatParameters.<clinit>(AnySeatRedemptionServiceStub
> >
> > .java:1885)
> >         at
> > au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.createAnySeatParamResponse(ASRBookingConversionHelper.java:90)
> >
> >         at
> > au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.getConversionStr(ASRBookingConversionHelper.java:65)
> >
> >         at
> > au.com.qantas.asrbooking.tripflow.impl.ASRPointsConverterAccessorImpl.getConvertionString(ASRPointsConverterAccessorImpl.java:26)
> >
> >         at
> > au.com.qantas.asrbooking.tripflow.impl.ASRSelectionAccessorImpl.getConversionData(ASRSelectionAccessorImpl.java:328)
> >
> >         at
> > au.com.qantas.asrbooking.tripflow.ASRTripflowExecutionContext.<init>(ASRTripflowExecutionContext.java:64)
> >
> >         at
> > au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.generateTripflow(ASRBookingSearchBusinessDelegate.java:89)
> >
> >         at
> > au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.getTripflowURL(ASRBookingSearchBusinessDelegate.java:53)
> >
> >         at
> > au.com.qantas.asrbooking.application.ASRBookingSearchAction.execute(ASRBookingSearchAction.java:183)
> >
> >         at
> > org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
> >
> >         at
> > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
> >
> >         at
> > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
> >         at
> > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
> >         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> >         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >         at
> > weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
> >
> >         at
> > weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
> >
> >         at
> > weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
> >         at
> > au.com.qantas.ecomm.registration.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:104)
> >
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
> >         at
> > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
> >
> >         at
> > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
> >
> >         at
> > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
> >         at
> > weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
> >
> >         at
> > weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
> >
> >         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
> >
> >         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> > >
> >
> >
> >
> > The solutions which i know are
> >
> > 1. Adding the stax-api.jar before weblogic.jar in the startup script.
> >
> >  I cant implement this solution because i have lot of applications
> > working inside the same ear and client is not permitting this configuraton
> > change as this may affect the other systems
> >
> >
> > 2.Make <prefer-web-inf-classes> to true forcing weblogic to pick the
> > jars from the webinf lib
> >
> >  This also creates problem for me as other applications running inside
> > the server is expectting so many jars from the server class path.
> >
> >
> > I cant apply these two solutions, could any one suggest some other work
> > around. Does it mean that we cant have axis client running in weblogic if
> > some other applications are also running.Hope this is not the case and some
> > other better solution is there.
> > Regards
> >
> > Hari
> >
> >
> > --
> > Hari.C
> >
>
>


-- 
Hari.C

Re: Client Jars conflicting - Work around

Posted by faraz masood <fa...@gmail.com>.
Hi Hari,

Have you tried changing the class loader policies for your EAR .

somewhere in your deployment.xml


<deployedObject xmi:type="appdeployment:ApplicationDeployment"
xmi:id="ApplicationDeployment_1207830167461"
startingWeight="1" warClassLoaderPolicy="SINGLE">
change this to MULTIPLE


<classloader xmi:id="Classloader_1207830167461" mode="PARENT_FIRST"/>
change this to PARENT_LAST

Best Regards,
/Faraz

On Wed, Apr 23, 2008 at 7:16 AM, Hari C <ha...@gmail.com> wrote:

>
> Hi all
>
> I am really stuck with the stax-api.jar conflicting with weblogic.jar.I
> know that this problem is posted before in this forum.The solutions which
> are told are not solving my problem.I have explained it towards the end of
> the mail.  My webservice client is throwing following error during runtime
>
> <Apr 23, 2008 12:03:01 PM EST> <Error> <HTTP> <BEA-101017>
> <[ServletContext(id=12698664,name=fflyer,context-path=/fflyer)] Root cause
> of ServletExcepti
> on.
> java.lang.NoSuchMethodError:
> javax.xml.namespace.QName.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
>
>         at
> au.com.qantas.fflyer.loyaltypointsconverter.services.AnySeatRedemptionServiceStub$GetAnySeatParameters.<clinit>(AnySeatRedemptionServiceStub
>
> .java:1885)
>         at
> au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.createAnySeatParamResponse(ASRBookingConversionHelper.java:90)
>
>         at
> au.com.qantas.asrbooking.tripflow.ASRBookingConversionHelper.getConversionStr(ASRBookingConversionHelper.java:65)
>
>         at
> au.com.qantas.asrbooking.tripflow.impl.ASRPointsConverterAccessorImpl.getConvertionString(ASRPointsConverterAccessorImpl.java:26)
>
>         at
> au.com.qantas.asrbooking.tripflow.impl.ASRSelectionAccessorImpl.getConversionData(ASRSelectionAccessorImpl.java:328)
>
>         at
> au.com.qantas.asrbooking.tripflow.ASRTripflowExecutionContext.<init>(ASRTripflowExecutionContext.java:64)
>
>         at
> au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.generateTripflow(ASRBookingSearchBusinessDelegate.java:89)
>
>         at
> au.com.qantas.asrbooking.bom.ASRBookingSearchBusinessDelegate.getTripflowURL(ASRBookingSearchBusinessDelegate.java:53)
>
>         at
> au.com.qantas.asrbooking.application.ASRBookingSearchAction.execute(ASRBookingSearchAction.java:183)
>
>         at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>
>         at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
>
>         at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>         at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at
> weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
>
>         at
> weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
>
>         at
> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
>         at
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
>         at
> au.com.qantas.ecomm.registration.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:104)
>
>         at
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
>         at
> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
>
>         at
> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>
>         at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
>         at
> weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
>
>         at
> weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
>
>         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> >
>
>
>
> The solutions which i know are
>
> 1. Adding the stax-api.jar before weblogic.jar in the startup script.
>
>  I cant implement this solution because i have lot of applications working
> inside the same ear and client is not permitting this configuraton change as
> this may affect the other systems
>
>
> 2.Make <prefer-web-inf-classes> to true forcing weblogic to pick the jars
> from the webinf lib
>
>  This also creates problem for me as other applications running inside the
> server is expectting so many jars from the server class path.
>
>
> I cant apply these two solutions, could any one suggest some other work
> around. Does it mean that we cant have axis client running in weblogic if
> some other applications are also running.Hope this is not the case and some
> other better solution is there.
> Regards
>
> Hari
>
>
> --
> Hari.C
>