I have most certainly got the EJB working through SOAP, just not JBOSS,
sorry. :)

-- Jared

"Cook, Martin" <[EMAIL PROTECTED]> on 08/29/2001 12:23:57 PM

Please respond to [EMAIL PROTECTED]

To:   "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
cc:
Subject:  Re: calling stateless EJB via SOAP


Thanks for taking the time to reply, Jared. I added my EJB jar file to the
classpath, but it doesn't seem to make any difference. I do agree with you,
in that I also believe that my problem is related to a classpath issue, but
I'm not sure how to proceed.

Has anyone out there managed to get Apache to serve up an EJB through SOAP?
Specifically, and EJB running on JBOSS?

-----Original Message-----
From: Jared P Jurkiewicz [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, August 28, 2001 11:36 AM
To: [EMAIL PROTECTED]
Subject: Re: calling stateless EJB via SOAP


The classpath that SOAP is on doesn't contain the EJB classes, so it's not
finding the home interface class to load and invoke.  You need to add your
EJB jar to the classpaht SAOP sees, I believe.

-- Jared


"Cook, Martin" <[EMAIL PROTECTED]> on 08/28/2001 11:51:51 AM

Please respond to [EMAIL PROTECTED]

To:   "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
cc:
Subject:  calling stateless EJB via SOAP


I am attempting to use Apache ver 2.2 SOAP to call a stateless EJB deployed
in JBOSS ver 2.2.2. The error I get back from Apache is:

  Fault Code   = SOAP-ENV:Server
  Fault String = Error in connecting to EJB

The JBOSS log shows this:

  [EmbeddedTomcatSX] In TemplateProvider.locate()
  [EmbeddedTomcatSX] URI: urn:getAddressTypes
  [EmbeddedTomcatSX] DD.ServiceClass:
org.apache.soap.providers.StatelessEJBProvider
  [EmbeddedTomcatSX] DD.ProviderClass: null
  [EmbeddedTomcatSX] Call.MethodName: getXML
  [EmbeddedTomcatSX] Exception caught: javax.naming.CommunicationException
[Root exception is java.lang.ClassNot
  FoundException: oneok.ocms.bll.getAddressTypesHome]


My client code is roughly:

  URL urlRouter = new URL ("http://localhost:8080/soap/servlet/rpcrouter";);

  Call call = new Call ();
  call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
  call.setTargetObjectURI ("urn:getAddressTypes");
  call.setMethodName ("getXML");
  Response resp = call.invoke(urlRouter, "");


My SOAP deployment descriptor is:

  <?xml version="1.0"?>
  <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment";
             id="urn:getAddressTypes">
    <isd:provider type="org.apache.soap.providers.StatelessEJBProvider"
                scope="Application"
                methods="create">
      <isd:option key="JNDIName" value="ejb/bll/getAddressTypes"/>
      <isd:option key="FullHomeInterfaceName"
value="oneok.ocms.bll.getAddressTypesHome" />
      <isd:option key="ContextProviderURL" value="jnp://localhost:1099" />
      <isd:option key="FullContextFactoryName"
value="org.jnp.interfaces.NamingContextFactory" />
    </isd:provider>

<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListene


r>
  </isd:service>


My EJB works with "traditional" java clients, just not with the SOAP
client.

I haven't noticed any other problems with my Apache or JBOSS installations,
and yes, I do have the xerces.jar file listed first in my classpath...

I even tried adding the jar file for my EJB to the classpath, and
restarted everything, but that didn't help either!

Does anyone have any ideas?










Reply via email to