If you have access to your EJB interface, you could try using the
jsr181 component, and using the spring factory beans for accessing
EJB.

  <jsr181:endpoint serviceInterface="com.mycom.MyComponent">
    <jsr181:pojo>
      <bean 
class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
        <property name="jndiName" value="myComponent"/>
        <property name="businessInterface" value="com.mycom.MyComponent"/>
      </bean>
    </jsr181:pojo>
  </jsr181:endpoint>

I have not tested that yet, but it should work ...

Cheers,
Guillaume Nodet

On 4/15/06, MikeGeorge <[EMAIL PROTECTED]> wrote:
>
> 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-t1454040.html#a3929272
> Sent from the ServiceMix - User forum at Nabble.com.
>
>

Reply via email to