You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Robert Pollina <ro...@sun.com> on 2002/02/07 00:06:43 UTC

Problems using SOAP to call EJBs

I've installed SOAP and have the addressbook example running fine.

I'm trying to setup an example where I can use SOAP to call an
EJB.  I am currently getting the following error:

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

Server Side:
===========
In TemplateProvider.locate()
URI: urn:stringprovider
DD.ServiceClass: org.apache.soap.providers.StatelessEJBProvider
DD.ProviderClass: null
Call.MethodName: concat
Exception caught: java.lang.ClassCastException
GXDSYNC_MSG_UPDATE_ACCSTIME to be sent
GXDSStringList::Pack() m_count=1
GXDSMessenger::SendMsg to (0x8194adbc:10818) called

Here is the DeploymentDesciptor:
===============================
<?xml version="1.0"?>
<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
             id="urn:stringprovider">
  <isd:provider type="org.apache.soap.providers.StatelessEJBProvider"
                scope="Application"
                methods="create ping concat substring">
    <isd:option key="JNDIName" value="ejb/StringTest_EJBModule/StringTest" />
    <isd:option key="FullHomeInterfaceName" value="rtp.ejbs.StringTestHome" />
    <isd:option key="ContextProviderURL" value="iiop://tasha:9010" />
    <isd:option key="FullContextFactoryName" value="com.sun.jndi.cosnaming.CNCtxFactory" />
  </isd:provider>
 <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>

</isd:service>


I created and deployed the EJB using Forte for Java Enterprise Edition 3.0
with the iPlanet Application Server (6.0).  Here is the generated
DeploymentDescriptor for the EJB:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN'
'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>

<ejb-jar>
  <display-name>StringTest_EJBModule</display-name>
  <enterprise-beans>
    <session>
      <description>StringTest Session Bean</description>
      <display-name>StringTest</display-name>
      <ejb-name>StringTest</ejb-name>
      <home>rtp.ejbs.StringTestHome</home>
      <remote>rtp.ejbs.StringTest</remote>
      <ejb-class>rtp.ejbs.StringTestEJB</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
    </session>
  </enterprise-beans>
  <assembly-descriptor>
    <container-transaction>
      <description>This value was set as a default by Forte For Java.</description>
      <method>
 <ejb-name>StringTest</ejb-name>
 <method-intf>Remote</method-intf>
 <method-name>substring</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
      <description>This value was set as a default by Forte For Java.</description>
      <method>
 <ejb-name>StringTest</ejb-name>
 <method-intf>Remote</method-intf>
 <method-name>concat</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
      <description>This value was set as a default by Forte For Java.</description>
      <method>
 <ejb-name>StringTest</ejb-name>
 <method-intf>Remote</method-intf>
 <method-name>ping</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
  </assembly-descriptor>
</ejb-jar>

I've beaten my head aginst this one all day.  Any help would be
GREATLY appreciated.

Thanks.

Robert