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