But I don't want the JARS in my classpath... that's the whole point of
trying to package them into the EAR file.

If I package the JARS as part of an AXIS WAR file, then AXIS can see my
EJBs however the EJBs can't see access.  I assume I could somehow
reference these WAR JARS in the manifest file of the EJB that needs them,
but how do you reference a WAR file's lib JARS in the Class-Path entry of
a manifest file?

If I package the JARS at the root level of the EAR, modify the
application.xml to point to these JARS and modify the manifest file of the
EJB that needs to access AXIS, then the EJB can see AXIS. However, for
some weird classloader reason the AXIS WAR jsp and index files can't get
to the necessary classes in the AXIS jars.  Specifically, it complains
about not finding javax.xml.soap.SOAPException which is in the saaj.jar.
It only complains about not finding that after loading the AxisServlet
class in the axis.jar file.  So, it can get to axis.jar (which, again, is
at the root level of my EAR) but from there it can't get to any of the
supporting JARS.

In any case... I want a packaging solution that doesn't require me to put
any AXIS jars in my system classpath.  I want a solution where there's
only one instance of AXIS jars being used, and those instances are somehow
appropriately packaged in my EAR file.  I want the AXIS servlets insid of
a WAR file, and be able to access my EJBs and thus use them as web
services if needed... and I want my EJBs able to use the classes in the
Axis jars, as well.

I can't be the only one here that has to do something like this.
Shouldn't this be a relatively easy thing to do.  Don't most people need
to have their AXIS WAR access EJBs, and their EJBs access the AXIS jars??
What am I missing here?

On Fri, 13 Dec 2002, [iso-8859-1] Björn Klatt wrote:

> Hello,
>
> I have put the Axis jars in the webapp/lib/ directory and put the new jars
> in the classpath of the start.cmd file. WebLogic now finds all the necessary
> Axis classes and my Beans can use Axis and Axis can use my EJBs.
> I hope this will help you.
>
>
> Björn
>
> > -----Ursprüngliche Nachricht-----
> > Von: Michael Hudson [mailto:[EMAIL PROTECTED]]
> > Gesendet: Donnerstag, 12. Dezember 2002 23:54
> > An: [EMAIL PROTECTED]
> > Betreff: 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.
> >
> >                      |                               |
> > ==============================================================
> > ================
> >
>

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

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

Reply via email to