You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@xml.apache.org by "Michael J. Hudson" <mh...@blueprinttech.com> on 2002/01/11 21:48:15 UTC

Weblogic 6.1 SP2 accessing an EJB in an EAR

I originally had Apache SOAP 2.2 working just fine with Weblogic
5.1... and there, it was successfully accessing a stateful session 
bean.  Now, after a series of problems trying to upgrade to Weblogic
6.1, I have one last problem and I think things will work again.
BTW, I'm using Weblogic 6.1 SP2.  

My current problem is that the SOAP stuff can't seem to find my stateful 
session bean anymore.

I get the following error:

<ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
<ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
<ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
connecting to EJB
java.lang.ClassNotFoundException:
org.myapp.services.ejb.sessionmanager.SessionManagerHome

I have my application wrapped in an EAR file.  And thus, all my
EJBs are in that EAR file... and thus my SessionManager bean is and 
does NOT need to be my classpath.

At first, I figured the problem was that I needed to modify the web.xml
so that the <ejb-ref-name> points to my sessionmanager... and likewise 
also create weblogic.xml that tied the web.xml's <ejb-ref-name> to 
the actual JNDI name.  I thought that would do it... but no such luck.  

Am I missing something.  Is there some other trick in telling an 
outside web app like Apache SOAP where my EAR is... or how to obtain
an EJB in my EAR?

Thanks

-------------------------------------
Michael J. Hudson
Software/Framework Engineer
mhudson@blueprinttech.com

cell-phone: 703.362.8039
voice-mail: 703.827.0638 ext. 4786
fax: 703.734.0987

Blueprint Technologies
"Great software starts with great architecture"
http://www.blueprinttech.com

RE: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by Trev Smith <tr...@yahoo.com>.
Hi,

I have a very similar problem, which I took up in one of the BEA newsgroups.
I've included the short thread here for anyone thats interested.

Cheers,
Trev


-----Original Message-----

Hi Trev,

Let's recap here:

1. You are deploying the .war file for Apache SOAP, into WLS 6.1 SP2, right?
If
yes, you copied the .war file into the $WL_HOME/config/examples/applications
directory,
or something similar, right?

2. It (some class or classes in soap.war) couldn't find the classes for your
EJB
so, you "unwarred" it, created a WEB-INF/lib directory, and copied the .jar
for
your EJB into that directory. Then you re-jarred the soap.war, right? If so,
did
you put a <ejb-ref> element in the web.xml (for soap.war), so it (the SOAP
webapp)
would know about the ejb?

The <ejb-ref> should look something like this:

<ejb-ref>
   <description></description>

<ejb-ref-name>examples.webservices.security.PhoneBookService</ejb-ref-name>
   <ejb-ref-type>Session</ejb-ref-type>
   <home>examples.webservices.security.PhoneBookServiceHome</home>
   <remote>examples.webservices.security.PhoneBookService</remote>
</ejb-ref>

You'd also need to create a WEB-INF/weblogic.xml file and put something like
this
in it:

<reference-descriptor>
   <ejb-reference-description>

<ejb-ref-name>examples.webservices.security.PhoneBookService</ejb-ref-name>
      <jndi-name>examples.webservices.security.PhoneBookService</jndi-name>
      </ejb-reference-description>
</reference-descriptor>

But, I would do any of this because your EJB doesn't have "diddly squat" to
do
with Apache SOAP ;-) The Apache SOAP web app is a "standalone" thing, right?
You
want to use your EJB "with it", not be part "of it" right? Exactly! So,
let's
abandon that route...

3. Next, you tried to turn the Apache SOAP Web Application (.war) into the
Apache
SOAP Enterprise Application (.ear). I'm assuming that you created a
META-INF/application.xml
that looked something like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE
Application
1.2//EN' 'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
<application>
  <display-name>Apache SOAP 2.2</display-name>
  <module>
    <web>
      <web-uri>soap.war</web-uri>
      <context-root>/soap</context-root>
    </web>
  </module>
  <module>
    <ejb>{name of the .jar for your ejb}</ejb>
  </module>
</application>

But, you didn't create the <ejb-ref> stuff in #2 above. Again, I don't think
it
makes a lot of sense to put "your EJB" in the "Apache SOAP" Enterprise
application
;-)

What's going on here (the Apache SOAP code not being able to find your EJB
classes)
is "expected behavior" as far as the BEA docs go. Everyone I know (including
me!)
that deploys the Apache SOAP web app in WebLogic, creates a .jar that
contains
a copy of all the remote (and home) interface classes that the rpcrouter
servlet
will call, and puts this in the -classpath used to start WebLogic. That way,
it
(the Apache SOAP web app) will be able to find them. I don't put the jar for
the
EJB in the -classpath, though. To be honest, I don't use Apache SOAP because
it
doesn't support WSDL yet ;-)

Regards,
Mike Wooten


"ts" <ts...@ndsuk.com> wrote:
>Hi Mike,
>
>Cheers for the response. I've read the documentation you've linked to
>and I
>understand how WLS performs class loading.
>
>However, the documentation implies that I could either;
>
>A) Package the SOAP war file together with my EJB jar file in an EAR
>file
>and deploy, and the SOAP web app would subsequently be able to reference
>classes/beans. (Ref: "Although you could deploy the .war and .jar files
>separately, deploying them together in an .ear file produces a classloader
>arrangement that allows the servlets and JSPs to find the EJB classes.")
>
>B) Simply place my EJB jar file in the WEB-INF\lib subdirectory of the
>deployed SOAP web app. (Ref: J2EE specification).
>
>In fact, neither of these work, and I am forced to include the EJB jar
>in
>the server's classpath.
>
>Surely theres some kind of problem here?
>
>Cheers,
>
>Trev
>
>"Michael Wooten" <wo...@hotmail.com> wrote in message
>news:3c3cb9e5$1@newsgroups.bea.com...
>>
>> Hi Trev,
>>
>> Technically, this is not so much an issue with the classloader(s) in
>WLS,
>as it
>> is with J2EE packaging. WLS uses a pretty sophisticated, hierarchical
>class loading
>> architecture. The main reason for using this approach, was to support
>undeploying/redeploying
>> J2EE components (i.e. Servlets, EJBs) without shutting down the JVM.
>>
>> What you are encountering is a phenomena where Apache SOAP is deployed
>as
>a Web
>> Application, with it's own ServletContext and classloader.
>>
>> See the following links for specifics on class loading and J2EE packaging
>in WLS:
>>
>> http://e-docs.bea.com/wls/docs60/programming/packaging.html#1048725
>>
>> After reading this, you will see why the classloader associated with
>the
>Apache
>> SOAP web app, cannot see the classes (i.e. serializer, EJBs, etc.)
>you are
>using
>> to implement your web service.
>>
>> Regards,
>> Mike Wooten
>> "ts" <ts...@ndsuk.com> wrote:
>> >Hi,
>> >
>> >Has anyone managed to get Apache SOAP working with Weblogic 6x?
>> >
>> >I can get everything up and  running, but for some reason the
classloader
>> >for the web application (ie; the actual Apache SOAP app) doesn't load
>> >the
>> >classes in my jar file containing the EJB files, serializers, etc.
>> >
>> >Therefore whenever I make a SOAP request I get a server side error
>reported
>> >via SOAP that some class or another (one of my own ones) cannot be
>found.
>> >
>> >I can cure this by sticking my jar file in the server's classpath
>-
>however
>> >this isn't great as it means the JVM's classloader is picking everything
>> >up
>> >and I lose the ability to redeploy.
>> >
>> >Any ideas? In the absence of any other information it would seem that
>> >Weblogic's classloaders are buggy...
>> >
>> >Cheers,
>> >Trev
>> >
>> >

-----Original Message-----
From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
Sent: 12 January 2002 04:46
To: soap-user@xml.apache.org
Subject: Re: Weblogic 6.1 SP2 accessing an EJB in an EAR



Finally got it to work.. but not the way I really wished it would
have worked.

Like I said below... I ended up WAR-ing up the whole Apache 2.2
stuff and included it inside my EAR as SOAP.WAR

I put the soap.jar at the root level in my EAR (same level as my
EJB jars).

Then I wrote a manifest.mf file that said "Class-Path: soap.jar"
and included that in the appropriate place in my SOAP.WAR

Now everything works! But not quite how Apache has one installing
their SOAP stuff.

-Michael

--------------------"Michael J. Hudson" wrote:
>
> Yes, I have a JSP within the EAR that calls the SessionManager EJB
> through RMI.  And that works.
>
> I guess the real question is... has anyone else done this type of
> thing with my configuration?  Specifically, Apache SOAP 2.2 with
> Weblogic 6.1 SP2 where the SOAP is trying to access a stateful
> session bean that resides in an EAR that is independent of the
> SOAP app.
>
> Right now, I'm thinking that I might just stop trying to make this
> work... and just WAR up the whole Apache SOAP 2.2 stuff, and include
> that INSIDE my EAR.
>
> --------------------John Prout wrote:
> >
> > Can you access your SessionManager EJB from something other than the
SOAP
> > servlet ?
> >
> > (i.e is this a problem with the SOAP servlet configuration, or with the
> > deployment of your SessionManager EJB ?)
> >
> > -----Original Message-----
> > From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
> > Sent: Friday, January 11, 2002 12:48 PM
> > To: soap-user@xml.apache.org
> > Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR
> >
> > I originally had Apache SOAP 2.2 working just fine with Weblogic
> > 5.1... and there, it was successfully accessing a stateful session
> > bean.  Now, after a series of problems trying to upgrade to Weblogic
> > 6.1, I have one last problem and I think things will work again.
> > BTW, I'm using Weblogic 6.1 SP2.
> >
> > My current problem is that the SOAP stuff can't seem to find my stateful
> > session bean anymore.
> >
> > I get the following error:
> >
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
> > connecting to EJB
> > java.lang.ClassNotFoundException:
> > org.myapp.services.ejb.sessionmanager.SessionManagerHome
> >
> > I have my application wrapped in an EAR file.  And thus, all my
> > EJBs are in that EAR file... and thus my SessionManager bean is and
> > does NOT need to be my classpath.
> >
> > At first, I figured the problem was that I needed to modify the web.xml
> > so that the <ejb-ref-name> points to my sessionmanager... and likewise
> > also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
> > the actual JNDI name.  I thought that would do it... but no such luck.
> >
> > Am I missing something.  Is there some other trick in telling an
> > outside web app like Apache SOAP where my EAR is... or how to obtain
> > an EJB in my EAR?
> >
> > Thanks
> >
> > -------------------------------------
> > Michael J. Hudson
> > Software/Framework Engineer
> > mhudson@blueprinttech.com
> >
> > cell-phone: 703.362.8039
> > voice-mail: 703.827.0638 ext. 4786
> > fax: 703.734.0987
> >
> > Blueprint Technologies
> > "Great software starts with great architecture"
> > http://www.blueprinttech.com


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


RE: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by Trev Smith <tr...@yahoo.com>.
Hi,

I have a very similar problem, which I took up in one of the BEA newsgroups.
I've included the short thread here for anyone thats interested.

Cheers,
Trev


-----Original Message-----

Hi Trev,

Let's recap here:

1. You are deploying the .war file for Apache SOAP, into WLS 6.1 SP2, right?
If
yes, you copied the .war file into the $WL_HOME/config/examples/applications
directory,
or something similar, right?

2. It (some class or classes in soap.war) couldn't find the classes for your
EJB
so, you "unwarred" it, created a WEB-INF/lib directory, and copied the .jar
for
your EJB into that directory. Then you re-jarred the soap.war, right? If so,
did
you put a <ejb-ref> element in the web.xml (for soap.war), so it (the SOAP
webapp)
would know about the ejb?

The <ejb-ref> should look something like this:

<ejb-ref>
   <description></description>

<ejb-ref-name>examples.webservices.security.PhoneBookService</ejb-ref-name>
   <ejb-ref-type>Session</ejb-ref-type>
   <home>examples.webservices.security.PhoneBookServiceHome</home>
   <remote>examples.webservices.security.PhoneBookService</remote>
</ejb-ref>

You'd also need to create a WEB-INF/weblogic.xml file and put something like
this
in it:

<reference-descriptor>
   <ejb-reference-description>

<ejb-ref-name>examples.webservices.security.PhoneBookService</ejb-ref-name>
      <jndi-name>examples.webservices.security.PhoneBookService</jndi-name>
      </ejb-reference-description>
</reference-descriptor>

But, I would do any of this because your EJB doesn't have "diddly squat" to
do
with Apache SOAP ;-) The Apache SOAP web app is a "standalone" thing, right?
You
want to use your EJB "with it", not be part "of it" right? Exactly! So,
let's
abandon that route...

3. Next, you tried to turn the Apache SOAP Web Application (.war) into the
Apache
SOAP Enterprise Application (.ear). I'm assuming that you created a
META-INF/application.xml
that looked something like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE
Application
1.2//EN' 'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
<application>
  <display-name>Apache SOAP 2.2</display-name>
  <module>
    <web>
      <web-uri>soap.war</web-uri>
      <context-root>/soap</context-root>
    </web>
  </module>
  <module>
    <ejb>{name of the .jar for your ejb}</ejb>
  </module>
</application>

But, you didn't create the <ejb-ref> stuff in #2 above. Again, I don't think
it
makes a lot of sense to put "your EJB" in the "Apache SOAP" Enterprise
application
;-)

What's going on here (the Apache SOAP code not being able to find your EJB
classes)
is "expected behavior" as far as the BEA docs go. Everyone I know (including
me!)
that deploys the Apache SOAP web app in WebLogic, creates a .jar that
contains
a copy of all the remote (and home) interface classes that the rpcrouter
servlet
will call, and puts this in the -classpath used to start WebLogic. That way,
it
(the Apache SOAP web app) will be able to find them. I don't put the jar for
the
EJB in the -classpath, though. To be honest, I don't use Apache SOAP because
it
doesn't support WSDL yet ;-)

Regards,
Mike Wooten


"ts" <ts...@ndsuk.com> wrote:
>Hi Mike,
>
>Cheers for the response. I've read the documentation you've linked to
>and I
>understand how WLS performs class loading.
>
>However, the documentation implies that I could either;
>
>A) Package the SOAP war file together with my EJB jar file in an EAR
>file
>and deploy, and the SOAP web app would subsequently be able to reference
>classes/beans. (Ref: "Although you could deploy the .war and .jar files
>separately, deploying them together in an .ear file produces a classloader
>arrangement that allows the servlets and JSPs to find the EJB classes.")
>
>B) Simply place my EJB jar file in the WEB-INF\lib subdirectory of the
>deployed SOAP web app. (Ref: J2EE specification).
>
>In fact, neither of these work, and I am forced to include the EJB jar
>in
>the server's classpath.
>
>Surely theres some kind of problem here?
>
>Cheers,
>
>Trev
>
>"Michael Wooten" <wo...@hotmail.com> wrote in message
>news:3c3cb9e5$1@newsgroups.bea.com...
>>
>> Hi Trev,
>>
>> Technically, this is not so much an issue with the classloader(s) in
>WLS,
>as it
>> is with J2EE packaging. WLS uses a pretty sophisticated, hierarchical
>class loading
>> architecture. The main reason for using this approach, was to support
>undeploying/redeploying
>> J2EE components (i.e. Servlets, EJBs) without shutting down the JVM.
>>
>> What you are encountering is a phenomena where Apache SOAP is deployed
>as
>a Web
>> Application, with it's own ServletContext and classloader.
>>
>> See the following links for specifics on class loading and J2EE packaging
>in WLS:
>>
>> http://e-docs.bea.com/wls/docs60/programming/packaging.html#1048725
>>
>> After reading this, you will see why the classloader associated with
>the
>Apache
>> SOAP web app, cannot see the classes (i.e. serializer, EJBs, etc.)
>you are
>using
>> to implement your web service.
>>
>> Regards,
>> Mike Wooten
>> "ts" <ts...@ndsuk.com> wrote:
>> >Hi,
>> >
>> >Has anyone managed to get Apache SOAP working with Weblogic 6x?
>> >
>> >I can get everything up and  running, but for some reason the
classloader
>> >for the web application (ie; the actual Apache SOAP app) doesn't load
>> >the
>> >classes in my jar file containing the EJB files, serializers, etc.
>> >
>> >Therefore whenever I make a SOAP request I get a server side error
>reported
>> >via SOAP that some class or another (one of my own ones) cannot be
>found.
>> >
>> >I can cure this by sticking my jar file in the server's classpath
>-
>however
>> >this isn't great as it means the JVM's classloader is picking everything
>> >up
>> >and I lose the ability to redeploy.
>> >
>> >Any ideas? In the absence of any other information it would seem that
>> >Weblogic's classloaders are buggy...
>> >
>> >Cheers,
>> >Trev
>> >
>> >

-----Original Message-----
From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
Sent: 12 January 2002 04:46
To: soap-user@xml.apache.org
Subject: Re: Weblogic 6.1 SP2 accessing an EJB in an EAR



Finally got it to work.. but not the way I really wished it would
have worked.

Like I said below... I ended up WAR-ing up the whole Apache 2.2
stuff and included it inside my EAR as SOAP.WAR

I put the soap.jar at the root level in my EAR (same level as my
EJB jars).

Then I wrote a manifest.mf file that said "Class-Path: soap.jar"
and included that in the appropriate place in my SOAP.WAR

Now everything works! But not quite how Apache has one installing
their SOAP stuff.

-Michael

--------------------"Michael J. Hudson" wrote:
>
> Yes, I have a JSP within the EAR that calls the SessionManager EJB
> through RMI.  And that works.
>
> I guess the real question is... has anyone else done this type of
> thing with my configuration?  Specifically, Apache SOAP 2.2 with
> Weblogic 6.1 SP2 where the SOAP is trying to access a stateful
> session bean that resides in an EAR that is independent of the
> SOAP app.
>
> Right now, I'm thinking that I might just stop trying to make this
> work... and just WAR up the whole Apache SOAP 2.2 stuff, and include
> that INSIDE my EAR.
>
> --------------------John Prout wrote:
> >
> > Can you access your SessionManager EJB from something other than the
SOAP
> > servlet ?
> >
> > (i.e is this a problem with the SOAP servlet configuration, or with the
> > deployment of your SessionManager EJB ?)
> >
> > -----Original Message-----
> > From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
> > Sent: Friday, January 11, 2002 12:48 PM
> > To: soap-user@xml.apache.org
> > Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR
> >
> > I originally had Apache SOAP 2.2 working just fine with Weblogic
> > 5.1... and there, it was successfully accessing a stateful session
> > bean.  Now, after a series of problems trying to upgrade to Weblogic
> > 6.1, I have one last problem and I think things will work again.
> > BTW, I'm using Weblogic 6.1 SP2.
> >
> > My current problem is that the SOAP stuff can't seem to find my stateful
> > session bean anymore.
> >
> > I get the following error:
> >
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
> > connecting to EJB
> > java.lang.ClassNotFoundException:
> > org.myapp.services.ejb.sessionmanager.SessionManagerHome
> >
> > I have my application wrapped in an EAR file.  And thus, all my
> > EJBs are in that EAR file... and thus my SessionManager bean is and
> > does NOT need to be my classpath.
> >
> > At first, I figured the problem was that I needed to modify the web.xml
> > so that the <ejb-ref-name> points to my sessionmanager... and likewise
> > also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
> > the actual JNDI name.  I thought that would do it... but no such luck.
> >
> > Am I missing something.  Is there some other trick in telling an
> > outside web app like Apache SOAP where my EAR is... or how to obtain
> > an EJB in my EAR?
> >
> > Thanks
> >
> > -------------------------------------
> > Michael J. Hudson
> > Software/Framework Engineer
> > mhudson@blueprinttech.com
> >
> > cell-phone: 703.362.8039
> > voice-mail: 703.827.0638 ext. 4786
> > fax: 703.734.0987
> >
> > Blueprint Technologies
> > "Great software starts with great architecture"
> > http://www.blueprinttech.com


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Re: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by "Michael J. Hudson" <mh...@blueprinttech.com>.
Finally got it to work.. but not the way I really wished it would
have worked.

Like I said below... I ended up WAR-ing up the whole Apache 2.2
stuff and included it inside my EAR as SOAP.WAR

I put the soap.jar at the root level in my EAR (same level as my
EJB jars).  

Then I wrote a manifest.mf file that said "Class-Path: soap.jar"
and included that in the appropriate place in my SOAP.WAR

Now everything works! But not quite how Apache has one installing
their SOAP stuff.

-Michael

--------------------"Michael J. Hudson" wrote:
> 
> Yes, I have a JSP within the EAR that calls the SessionManager EJB
> through RMI.  And that works.
> 
> I guess the real question is... has anyone else done this type of
> thing with my configuration?  Specifically, Apache SOAP 2.2 with
> Weblogic 6.1 SP2 where the SOAP is trying to access a stateful
> session bean that resides in an EAR that is independent of the
> SOAP app.
> 
> Right now, I'm thinking that I might just stop trying to make this
> work... and just WAR up the whole Apache SOAP 2.2 stuff, and include
> that INSIDE my EAR.
> 
> --------------------John Prout wrote:
> >
> > Can you access your SessionManager EJB from something other than the SOAP
> > servlet ?
> >
> > (i.e is this a problem with the SOAP servlet configuration, or with the
> > deployment of your SessionManager EJB ?)
> >
> > -----Original Message-----
> > From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
> > Sent: Friday, January 11, 2002 12:48 PM
> > To: soap-user@xml.apache.org
> > Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR
> >
> > I originally had Apache SOAP 2.2 working just fine with Weblogic
> > 5.1... and there, it was successfully accessing a stateful session
> > bean.  Now, after a series of problems trying to upgrade to Weblogic
> > 6.1, I have one last problem and I think things will work again.
> > BTW, I'm using Weblogic 6.1 SP2.
> >
> > My current problem is that the SOAP stuff can't seem to find my stateful
> > session bean anymore.
> >
> > I get the following error:
> >
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
> > connecting to EJB
> > java.lang.ClassNotFoundException:
> > org.myapp.services.ejb.sessionmanager.SessionManagerHome
> >
> > I have my application wrapped in an EAR file.  And thus, all my
> > EJBs are in that EAR file... and thus my SessionManager bean is and
> > does NOT need to be my classpath.
> >
> > At first, I figured the problem was that I needed to modify the web.xml
> > so that the <ejb-ref-name> points to my sessionmanager... and likewise
> > also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
> > the actual JNDI name.  I thought that would do it... but no such luck.
> >
> > Am I missing something.  Is there some other trick in telling an
> > outside web app like Apache SOAP where my EAR is... or how to obtain
> > an EJB in my EAR?
> >
> > Thanks
> >
> > -------------------------------------
> > Michael J. Hudson
> > Software/Framework Engineer
> > mhudson@blueprinttech.com
> >
> > cell-phone: 703.362.8039
> > voice-mail: 703.827.0638 ext. 4786
> > fax: 703.734.0987
> >
> > Blueprint Technologies
> > "Great software starts with great architecture"
> > http://www.blueprinttech.com

Re: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by "Michael J. Hudson" <mh...@blueprinttech.com>.
Finally got it to work.. but not the way I really wished it would
have worked.

Like I said below... I ended up WAR-ing up the whole Apache 2.2
stuff and included it inside my EAR as SOAP.WAR

I put the soap.jar at the root level in my EAR (same level as my
EJB jars).  

Then I wrote a manifest.mf file that said "Class-Path: soap.jar"
and included that in the appropriate place in my SOAP.WAR

Now everything works! But not quite how Apache has one installing
their SOAP stuff.

-Michael

--------------------"Michael J. Hudson" wrote:
> 
> Yes, I have a JSP within the EAR that calls the SessionManager EJB
> through RMI.  And that works.
> 
> I guess the real question is... has anyone else done this type of
> thing with my configuration?  Specifically, Apache SOAP 2.2 with
> Weblogic 6.1 SP2 where the SOAP is trying to access a stateful
> session bean that resides in an EAR that is independent of the
> SOAP app.
> 
> Right now, I'm thinking that I might just stop trying to make this
> work... and just WAR up the whole Apache SOAP 2.2 stuff, and include
> that INSIDE my EAR.
> 
> --------------------John Prout wrote:
> >
> > Can you access your SessionManager EJB from something other than the SOAP
> > servlet ?
> >
> > (i.e is this a problem with the SOAP servlet configuration, or with the
> > deployment of your SessionManager EJB ?)
> >
> > -----Original Message-----
> > From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
> > Sent: Friday, January 11, 2002 12:48 PM
> > To: soap-user@xml.apache.org
> > Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR
> >
> > I originally had Apache SOAP 2.2 working just fine with Weblogic
> > 5.1... and there, it was successfully accessing a stateful session
> > bean.  Now, after a series of problems trying to upgrade to Weblogic
> > 6.1, I have one last problem and I think things will work again.
> > BTW, I'm using Weblogic 6.1 SP2.
> >
> > My current problem is that the SOAP stuff can't seem to find my stateful
> > session bean anymore.
> >
> > I get the following error:
> >
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
> > <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
> > connecting to EJB
> > java.lang.ClassNotFoundException:
> > org.myapp.services.ejb.sessionmanager.SessionManagerHome
> >
> > I have my application wrapped in an EAR file.  And thus, all my
> > EJBs are in that EAR file... and thus my SessionManager bean is and
> > does NOT need to be my classpath.
> >
> > At first, I figured the problem was that I needed to modify the web.xml
> > so that the <ejb-ref-name> points to my sessionmanager... and likewise
> > also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
> > the actual JNDI name.  I thought that would do it... but no such luck.
> >
> > Am I missing something.  Is there some other trick in telling an
> > outside web app like Apache SOAP where my EAR is... or how to obtain
> > an EJB in my EAR?
> >
> > Thanks
> >
> > -------------------------------------
> > Michael J. Hudson
> > Software/Framework Engineer
> > mhudson@blueprinttech.com
> >
> > cell-phone: 703.362.8039
> > voice-mail: 703.827.0638 ext. 4786
> > fax: 703.734.0987
> >
> > Blueprint Technologies
> > "Great software starts with great architecture"
> > http://www.blueprinttech.com

Re: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by "Michael J. Hudson" <mh...@blueprinttech.com>.
Yes, I have a JSP within the EAR that calls the SessionManager EJB
through RMI.  And that works.

I guess the real question is... has anyone else done this type of 
thing with my configuration?  Specifically, Apache SOAP 2.2 with
Weblogic 6.1 SP2 where the SOAP is trying to access a stateful
session bean that resides in an EAR that is independent of the 
SOAP app.  

Right now, I'm thinking that I might just stop trying to make this
work... and just WAR up the whole Apache SOAP 2.2 stuff, and include
that INSIDE my EAR.  

--------------------John Prout wrote:
> 
> Can you access your SessionManager EJB from something other than the SOAP
> servlet ?
> 
> (i.e is this a problem with the SOAP servlet configuration, or with the
> deployment of your SessionManager EJB ?)
> 
> -----Original Message-----
> From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
> Sent: Friday, January 11, 2002 12:48 PM
> To: soap-user@xml.apache.org
> Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR
> 
> I originally had Apache SOAP 2.2 working just fine with Weblogic
> 5.1... and there, it was successfully accessing a stateful session
> bean.  Now, after a series of problems trying to upgrade to Weblogic
> 6.1, I have one last problem and I think things will work again.
> BTW, I'm using Weblogic 6.1 SP2.
> 
> My current problem is that the SOAP stuff can't seem to find my stateful
> session bean anymore.
> 
> I get the following error:
> 
> <ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
> <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
> <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
> connecting to EJB
> java.lang.ClassNotFoundException:
> org.myapp.services.ejb.sessionmanager.SessionManagerHome
> 
> I have my application wrapped in an EAR file.  And thus, all my
> EJBs are in that EAR file... and thus my SessionManager bean is and
> does NOT need to be my classpath.
> 
> At first, I figured the problem was that I needed to modify the web.xml
> so that the <ejb-ref-name> points to my sessionmanager... and likewise
> also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
> the actual JNDI name.  I thought that would do it... but no such luck.
> 
> Am I missing something.  Is there some other trick in telling an
> outside web app like Apache SOAP where my EAR is... or how to obtain
> an EJB in my EAR?
> 
> Thanks
> 
> -------------------------------------
> Michael J. Hudson
> Software/Framework Engineer
> mhudson@blueprinttech.com
> 
> cell-phone: 703.362.8039
> voice-mail: 703.827.0638 ext. 4786
> fax: 703.734.0987
> 
> Blueprint Technologies
> "Great software starts with great architecture"
> http://www.blueprinttech.com

Re: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by "Michael J. Hudson" <mh...@blueprinttech.com>.
Yes, I have a JSP within the EAR that calls the SessionManager EJB
through RMI.  And that works.

I guess the real question is... has anyone else done this type of 
thing with my configuration?  Specifically, Apache SOAP 2.2 with
Weblogic 6.1 SP2 where the SOAP is trying to access a stateful
session bean that resides in an EAR that is independent of the 
SOAP app.  

Right now, I'm thinking that I might just stop trying to make this
work... and just WAR up the whole Apache SOAP 2.2 stuff, and include
that INSIDE my EAR.  

--------------------John Prout wrote:
> 
> Can you access your SessionManager EJB from something other than the SOAP
> servlet ?
> 
> (i.e is this a problem with the SOAP servlet configuration, or with the
> deployment of your SessionManager EJB ?)
> 
> -----Original Message-----
> From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
> Sent: Friday, January 11, 2002 12:48 PM
> To: soap-user@xml.apache.org
> Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR
> 
> I originally had Apache SOAP 2.2 working just fine with Weblogic
> 5.1... and there, it was successfully accessing a stateful session
> bean.  Now, after a series of problems trying to upgrade to Weblogic
> 6.1, I have one last problem and I think things will work again.
> BTW, I'm using Weblogic 6.1 SP2.
> 
> My current problem is that the SOAP stuff can't seem to find my stateful
> session bean anymore.
> 
> I get the following error:
> 
> <ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
> <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
> <ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
> connecting to EJB
> java.lang.ClassNotFoundException:
> org.myapp.services.ejb.sessionmanager.SessionManagerHome
> 
> I have my application wrapped in an EAR file.  And thus, all my
> EJBs are in that EAR file... and thus my SessionManager bean is and
> does NOT need to be my classpath.
> 
> At first, I figured the problem was that I needed to modify the web.xml
> so that the <ejb-ref-name> points to my sessionmanager... and likewise
> also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
> the actual JNDI name.  I thought that would do it... but no such luck.
> 
> Am I missing something.  Is there some other trick in telling an
> outside web app like Apache SOAP where my EAR is... or how to obtain
> an EJB in my EAR?
> 
> Thanks
> 
> -------------------------------------
> Michael J. Hudson
> Software/Framework Engineer
> mhudson@blueprinttech.com
> 
> cell-phone: 703.362.8039
> voice-mail: 703.827.0638 ext. 4786
> fax: 703.734.0987
> 
> Blueprint Technologies
> "Great software starts with great architecture"
> http://www.blueprinttech.com

RE: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by John Prout <jc...@bluedot.com>.
Can you access your SessionManager EJB from something other than the SOAP
servlet ?

(i.e is this a problem with the SOAP servlet configuration, or with the
deployment of your SessionManager EJB ?)

-----Original Message-----
From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
Sent: Friday, January 11, 2002 12:48 PM
To: soap-user@xml.apache.org
Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR



I originally had Apache SOAP 2.2 working just fine with Weblogic
5.1... and there, it was successfully accessing a stateful session
bean.  Now, after a series of problems trying to upgrade to Weblogic
6.1, I have one last problem and I think things will work again.
BTW, I'm using Weblogic 6.1 SP2.

My current problem is that the SOAP stuff can't seem to find my stateful
session bean anymore.

I get the following error:

<ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
<ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
<ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
connecting to EJB
java.lang.ClassNotFoundException:
org.myapp.services.ejb.sessionmanager.SessionManagerHome

I have my application wrapped in an EAR file.  And thus, all my
EJBs are in that EAR file... and thus my SessionManager bean is and
does NOT need to be my classpath.

At first, I figured the problem was that I needed to modify the web.xml
so that the <ejb-ref-name> points to my sessionmanager... and likewise
also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
the actual JNDI name.  I thought that would do it... but no such luck.

Am I missing something.  Is there some other trick in telling an
outside web app like Apache SOAP where my EAR is... or how to obtain
an EJB in my EAR?

Thanks

-------------------------------------
Michael J. Hudson
Software/Framework Engineer
mhudson@blueprinttech.com

cell-phone: 703.362.8039
voice-mail: 703.827.0638 ext. 4786
fax: 703.734.0987

Blueprint Technologies
"Great software starts with great architecture"
http://www.blueprinttech.com


RE: Weblogic 6.1 SP2 accessing an EJB in an EAR

Posted by John Prout <jc...@bluedot.com>.
Can you access your SessionManager EJB from something other than the SOAP
servlet ?

(i.e is this a problem with the SOAP servlet configuration, or with the
deployment of your SessionManager EJB ?)

-----Original Message-----
From: Michael J. Hudson [mailto:mhudson@blueprinttech.com]
Sent: Friday, January 11, 2002 12:48 PM
To: soap-user@xml.apache.org
Subject: Weblogic 6.1 SP2 accessing an EJB in an EAR



I originally had Apache SOAP 2.2 working just fine with Weblogic
5.1... and there, it was successfully accessing a stateful session
bean.  Now, after a series of problems trying to upgrade to Weblogic
6.1, I have one last problem and I think things will work again.
BTW, I'm using Weblogic 6.1 SP2.

My current problem is that the SOAP stuff can't seem to find my stateful
session bean anymore.

I get the following error:

<ECHO> Fri Jan 11 14:53:16 EST 2002:<E> Generated fault:
<ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault Code   = SOAP-ENV:Server
<ECHO> Fri Jan 11 14:53:16 EST 2002:<E>   Fault String = Error in
connecting to EJB
java.lang.ClassNotFoundException:
org.myapp.services.ejb.sessionmanager.SessionManagerHome

I have my application wrapped in an EAR file.  And thus, all my
EJBs are in that EAR file... and thus my SessionManager bean is and
does NOT need to be my classpath.

At first, I figured the problem was that I needed to modify the web.xml
so that the <ejb-ref-name> points to my sessionmanager... and likewise
also create weblogic.xml that tied the web.xml's <ejb-ref-name> to
the actual JNDI name.  I thought that would do it... but no such luck.

Am I missing something.  Is there some other trick in telling an
outside web app like Apache SOAP where my EAR is... or how to obtain
an EJB in my EAR?

Thanks

-------------------------------------
Michael J. Hudson
Software/Framework Engineer
mhudson@blueprinttech.com

cell-phone: 703.362.8039
voice-mail: 703.827.0638 ext. 4786
fax: 703.734.0987

Blueprint Technologies
"Great software starts with great architecture"
http://www.blueprinttech.com