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.