The EJB provider - Writing the WSDL extension

The EJB provider supports the invocation of an enterprise bean through Remote Method Invocation over Internet Inter-ORB Protocol (RMI-IIOP).

 

Before you begin

Although 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.

 

Overview

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

 

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:

  • A question mark (?) means optional, and an asterisk (*) means 0 or more.

  • The name attribute of the <format:typeMap> element is a qualified name of a simple or complex type used by one of the EJB operations.

  • The formatType attribute of the <format:typeMap> element is the fully qualified class name for the Java class to which the element specified by name maps.

  • The methodName attribute of the <ejb:operation> element is the name of the method on the enterprise bean that is called by the operation.

  • The parameterOrder attribute of the <ejb:operation> element contains a white space-separated list of part names that define the order in which they are passed to the EJB method.

  • The interface attribute of the <ejb:operation> element must be set to either remote or home. The value specifies the interface of the enterprise bean on which the method named by the methodName attribute is accessible.

In the next example:

  • The className attribute of the <ejb:address> element specifies the fully qualified class name of the home interface class of the enterprise bean.

  • The jndiName attribute of the <ejb:address> element specifies the full Java Naming and Directory Interface (JNDI) name that is used to look up the enterprise bean.

  • The initialContextFactory attribute of the <ejb:address> element is optional and specifies the initial context factory class.

  • The jndiProviderURL attribute of the <ejb:address> element is optional and specifies the JNDI provider Web address.

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