Hi Michael,

May I ask why the EJBs need to see Axis? We use Axis in WLS6.1sp4
with no problems, but we use it to provide a simple facade to a
Stateless Session Bean. That is, we expose our business methods
from the bean and have a thing POJO which Axis calls. This POJO
is responsible for understanding the SOAP call (specifically,
dealing with attachments if there are any) and then looking up
the bean in JNDI and passing the call on.

Regards,

Dan.

-- 
Danny Yates
Technical Architect
Abbey National Treasury Services
E-mail: [EMAIL PROTECTED]
Phone: +44 20 7756 5012
Fax: +44 20 7612 4342


-----Original Message-----
From: Michael Hudson [mailto:[EMAIL PROTECTED]]
Sent: 12 December 2002 22:54
To: [EMAIL PROTECTED]
Subject: Packaging Axis into an EAR file



I'm using Weblogic 6.1sp4, and Axis 1.0

I can package Axis as a WAR file inside of my EAR file, and because of the
Weblogic classloader hierarchy, I don't have to do anything else for Axis
to see my EJBs in my EAR to act on them.

However, if my EJBs want to use Axis... the only solution I have found
that works is to put Axis in my system classpath before starting Weblogic.

I did try to put all the Axis jars into the root level of my EAR file, and
then add those jars to the manifest file of the EJB that needed to use
Axis.  That seemed to work... until Weblogic then tried to deploy my Axis
WAR.  Regardless of whether I actually had the Axis JARs in my Axis WAR's
WEB-INF/lib directory or not, I would get the following:

<Dec 12, 2002 5:22:11 PM EST> <Error> <HTTP>
<[WebAppServletContext(2018366,axis
,/axis)] Error loading servlet: "AdminServlet"
java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:120)
        at
org.apache.axis.transport.http.AxisServletBase.class$(AxisServletBase
.java:87)
        at
org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBa
se.java:94)
        at java.lang.Class.newInstance0(Native Method)
        at java.lang.Class.newInstance(Class.java:237)
        at
weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubIm
pl.java:690)
        ...

No matter what I do... put stuff in the EAR's manifest or the WAR's
manifest or whatever... it doesn't seem to work.  Essentially, it does
seem to be finding axis.jar, but it doesn't seem to be finding saaj.jar.
You'd think BECAUSE of the classloader hierarchy in Weblogic, that it
should see saaj.jar in the root EAR.  However, if I leave that in the root
EAR, but go ahead and put a copy of saaj.jar in AXIS WAR's WEB-INF/lib
directory, it still doesn't see it.  That doesn't make sense, because, if
I get rid of the copy in the root EAR, it works again.

I assume this has something to do with the servlet obtaining the
appropriate classpathloader.  But I have no idea how to fix it?

Any ideas?  Does anybody else have to do what I'm doing?  How has
everybody else packaged Axis inside of a WAR inside of an EAR, so that
Axis can see the EJBs, and the EJBs can see Axis???

Thanks,

============================================================================
==
Michael J. Hudson    |                               |        [EMAIL PROTECTED]

                "Search for the perfect church, if you will;
                       when you find it, join it, and
       realize that on that day it becomes something less than perfect."
 -Rev. Andrew Greeley responding to the moral crisis in the Catholic church.

                     |                               |
============================================================================
==


***************************************************************************
This communication (including any attachments) contains confidential information.  If 
you are not the intended recipient and you have received this communication in error, 
you should destroy it without copying, disclosing or otherwise using its contents.  
Please notify the sender immediately of the error.

Internet communications are not necessarily secure and may be intercepted or changed 
after they are sent.  Abbey National Treasury Services plc does not accept liability 
for any loss you may suffer as a result of interception or any liability for such 
changes.  If you wish to confirm the origin or content of this communication, please 
contact the sender by using an alternative means of communication.

This communication does not create or modify any contract and, unless otherwise 
stated, is not intended to be contractually binding.

Abbey National Treasury Services plc. Registered Office:  Abbey National House, 2 
Triton Square, Regents Place, London NW1 3AN.  Registered in England under Company 
Registration Number: 2338548.  Regulated by the Financial Services Authority (FSA).
***************************************************************************

Reply via email to