+

Search Tips   |   Advanced Search

 

Example: Writing the WSDL extension that enables your WSIF service to invoke an enterprise bean

 

Use the EJB provider, WSIF clients can invoke enterprise beans through Remote Method Invocation over Internet Inter-ORB Protocol (RMI-IIOP). Use this information, and associated code fragments, to help you to write the WSDL extension that links your WSIF service to a service implemented as an enterprise bean.

Although you can use the EJB provider for EJB(IIOP)-based Web service invocation, it is recommended that you instead invoke RMI-IIOP Web services using JAX-RPC.

The EJB client JAR file must be available in the client run-time environment with the current provider. The enterprise bean is invoked using normal EJB invocation methods, using RMI-IIOP, with the current security and transaction contexts. If the EJB provider is invoked within a transaction, the transaction is passed to the onward service and the standard EJB transaction attribute applies.

If there are multiple implementations of the service, it is up to the service providers to make sure that every implementation offers the same semantics. For example, in the case of transactions, the bean deployer must specify TX_REQUIRES_NEW to force a new transaction.

The EJB provider does not support the WSIF synchronous timeout. The EJB provider will not time out waiting for a Java method to complete.

To use the EJB provider, we need the following binding specified in the WSDL file:

 

Example

    <!-- EJB binding --> 
    <binding .... > 
        <ejb:binding /> 
        <format:typeMapping style="Java" encoding="Java"/>? 
            <format:typeMap name="qname" formatType="nmtoken"/>* 
        </format:typeMapping> 
        <operation>* 
            <ejb:operation 
                methodName="nmtoken" 
                parameterOrder="nmtoken"
                returnPart="nmtoken"? 
                interface="remote|home" /> 
            <input name="nmtoken"? />? 
            <output name="nmtoken"? />? 
            <fault name="nmtoken"? />? 
        </operation> 
    </binding>

In this example:

In the next example:

    <service ... > 
        <port>* 
            <ejb:address 
                className="nmtoken" 
                jndiName="nmtoken"
                initialContextFactory="nmtoken" ?
                jndiProviderURL="nmtoken" ? /> 
        </port> 
   </service> 




 

Related tasks


Linking a WSIF service to a SOAP over HTTP service
Linking a WSIF service to a JMS-provided service
Linking a WSIF service to the underlying implementation of the service

 

Related Reference


Linking a WSIF service to a local Java application - Writing the WSDL extension

 

Reference topic