You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by MikeGeorge <mi...@yahoo.com> on 2006/04/15 13:56:30 UTC
How 2 specify EJB service in WSIFBinding
I want to bind an EJB service to ESB, I am having the following binding:
--------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xbean.org/schemas/spring/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sm="http://servicemix.org/config/1.0"
xmlns:lb="http://servicemix.org/demos/loan-broker"
xsi:schemaLocation="http://xbean.org/schemas/spring/1.0
../../conf/spring-beans.xsd
http://servicemix.org/config/1.0
../../conf/servicemix.xsd">
<sm:container name="jbi"
monitorInstallationDirectory="false"
createMBeanServer="true"
useMBeanServer="true">
<sm:activationSpecs>
<sm:activationSpec componentName="wsifEJBBC" service="lb:wsifEJBBC">
<sm:component>
<bean xmlns="http://xbean.org/schemas/spring/1.0"
class="org.servicemix.components.wsif.WSIFBinding">
<property name="definitionResource"
value="simplebeanEjbBinding.wsdl"/>
</bean>
</sm:component>
</sm:activationSpec>
<!-- sm:activationSpec componentName="timer"
destinationService="lb:httpReceiver" -->
<sm:activationSpec componentName="timer"
destinationService="lb:wsifEJBBC">
<sm:component>
<bean xmlns="http://xbean.org/schemas/spring/1.0"
class="org.servicemix.components.quartz.QuartzComponent">
<property name="triggers">
<map>
<entry>
<key>
<bean class="org.quartz.SimpleTrigger">
<property name="repeatInterval" value="5000"/>
<property name="repeatCount" value="-1"/>
</bean>
</key>
<bean class="org.quartz.JobDetail">
<property name="name" value="My Example Job"/>
<property name="group" value="ServiceMix"/>
</bean>
</entry>
</map>
</property>
</bean>
</sm:component>
</sm:activationSpec>
</sm:activationSpecs>
</sm:container>
</beans>
My simplebeanEjbBinding.wsdl is shown below:
---------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://wsifservice.addressbook/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://wsifservice.addressbook/"
xmlns:intf="http://wsifservice.addressbook/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:ejb="http://schemas.xmlsoap.org/wsdl/ejb/"
xmlns:format="http://schemas.xmlsoap.org/wsdl/formatbinding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:message name="sayHelloResponse">
</wsdl:message>
<wsdl:message name="sayHelloRequest">
</wsdl:message>
<wsdl:portType name="AddressBookBI">
<wsdl:operation name="sayHello">
<wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest"/>
<wsdl:output message="impl:sayHelloResponse"
name="sayHelloResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AddressBookBISoapBinding" type="impl:AddressBookBI">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="sayHello">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="sayHelloRequest">
<wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wsifservice.addressbook/" use="encoded"/>
</wsdl:input>
<wsdl:output name="sayHelloResponse">
<wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://wsifservice.addressbook/" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="EJBBinding" type="impl:AddressBookBI">
<ejb:binding/>
<format:typeMapping encoding="Java" style="Java">
<format:typeMap typeName="xsd:string" formatType="java.lang.String" />
</format:typeMapping>
<wsdl:operation name="sayHello">
<ejb:operation
methodName="sayHello"
interface="remote" />
<wsdl:input name="sayHelloRequest"/>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AddressBookBIService">
<wsdl:port binding="impl:AddressBookBISoapBinding"
name="AddressBookBI">
<wsdlsoap:address location="http://wsifservice.addressbook/L/"/>
</wsdl:port>
</wsdl:service>
<wsdl:service name="AddressBookService">
<wsdl:port name="EJBPort" binding="impl:EJBBinding">
<!-- Put vendor-specific deployment information here -->
<ejb:address className="ejb.service.AddressBookSessionHome"
jndiName="ejb20-address-AddressBookSessionHome"
initialContextFactory="weblogic.jndi.WLInitialContextFactory"
jndiProviderURL="t3://localhost:7001"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
I am getting following Exception:
---------------------------------------------
[INFO] DefaultListableBeanFactory - Destroying singletons in factory
{org.springframework.beans.fact
ory.support.DefaultListableBeanFactory defining beans [jbi]; root of
BeanFactory hierarchy}
Caught: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'jbi'
defined in file [D:\esb\VoidVoidEjb\servicemix.xml]: Initialization of
bean failed; nested exception is javax.jbi.JBIException:
org.apache.wsif.WSIFException: Please speci
fy a Service. Choices are:
{{http://wsifservice.addressbook/}AddressBookService, {http://wsifservice
.addressbook/}AddressBookBIService}
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'jbi' defined
in file [D:\esb\VoidVoidEjb\servicemix.xml]: Initialization of bean fai
led; nested exception is javax.jbi.JBIException:
org.apache.wsif.WSIFException: Please specify a Ser
vice. Choices are: {{http://wsifservice.addressbook/}AddressBookService,
{http://wsifservice.address
book/}AddressBookBIService}
javax.jbi.JBIException: org.apache.wsif.WSIFException: Please specify a
Service. Choices are: {{http
://wsifservice.addressbook/}AddressBookService,
{http://wsifservice.addressbook/}AddressBookBIServic
e}
at
org.servicemix.components.wsif.WSIFBinding.init(WSIFBinding.java:88)
at
org.servicemix.components.util.PojoSupport.init(PojoSupport.java:88)
at
org.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:887)
at
org.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:855)
at
org.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:817)
at
org.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:765)
at
org.servicemix.jbi.container.SpringJBIContainer.afterPropertiesSet(SpringJBIContainer.jav
a:52)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMe
thods(AbstractAutowireCapableBeanFactory.java:1058)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(A
bstractAutowireCapableBeanFactory.java:363)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:226)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory
.java:147)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingle
tons(DefaultListableBeanFactory.java:275)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicatio
nContext.java:318)
at
org.xbean.spring.context.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationC
ontext.java:149)
at
org.xbean.spring.context.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationC
ontext.java:48)
at org.servicemix.Main.main(Main.java:76)
Caused by: org.apache.wsif.WSIFException: Please specify a Service. Choices
are: {{http://wsifservic
e.addressbook/}AddressBookService,
{http://wsifservice.addressbook/}AddressBookBIService}
at org.apache.wsif.util.WSIFUtils.getNamedItem(WSIFUtils.java:320)
at
org.apache.wsif.base.WSIFServiceImpl.init(WSIFServiceImpl.java:836)
at
org.apache.wsif.base.WSIFServiceImpl.<init>(WSIFServiceImpl.java:299)
at
org.apache.wsif.base.WSIFServiceImpl.<init>(WSIFServiceImpl.java:262)
at
org.apache.wsif.base.WSIFServiceImpl.<init>(WSIFServiceImpl.java:251)
at
org.apache.wsif.base.WSIFServiceFactoryImpl.getService(WSIFServiceFactoryImpl.java:209)
at
org.servicemix.components.wsif.WSIFBinding.init(WSIFBinding.java:71)
... 15 more
Can anyone help me how to specify Service? My method name in EJB is
"sayHello"
Thanks - Mike (mikegeorge12<{at}>yahoo.com)
--
View this message in context: http://www.nabble.com/How-2-specify-EJB-service-in-WSIFBinding-t1454025.html#a3929228
Sent from the ServiceMix - Dev forum at Nabble.com.