The WSDL (1.1) can be generated from the EJB remote interface, using the command-line tool or the Netbeans plug-in.
Three WSDL extensions point has benn defined to correctly configure a Jbi4Ejb ServiceUnit:
Thid extensions are formally defined by the xml schema:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:imolaejb="uri://schemas.imola.it/jbi/wsdl-extensions/ejb/" targetNamespace="uri://schemas.imola.it/jbi/wsdl-extensions/ejb/"> <xsd:simpleType name="localizationChoice"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="corbaname"/> </xsd:restriction> </xsd:simpleType> <!-- types extensibility element --> <xsd:element name="types" type="imolaejb:typesType"/> <xsd:complexType name="typesType"> <xsd:sequence> <xsd:element ref="imolaejb:serialVersionUID" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:element name="serialVersionUID"> <xsd:complexType> <xsd:attribute name="className" type="xsd:string" use="required"/> <xsd:attribute name="UID" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="property"> <xsd:complexType> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="value" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:complexType name="orbProperties"> <xsd:sequence> <xsd:element ref="imolaejb:property" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="jndiProperties"> <xsd:sequence> <xsd:element ref="imolaejb:property" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:element name="binding" type="imolaejb:bindingType"/> <xsd:complexType name="bindingType"> <xsd:sequence> <xsd:element name="orb" type="imolaejb:orbProperties"/> </xsd:sequence> </xsd:complexType> <xsd:element name="address" type="imolaejb:addressType"/> <xsd:complexType name="addressType"> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="localizationType" type="imolaejb:localizationChoice" use="required"/> </xsd:complexType> </xsd:schema>
With the Jbi4Ejb address you can specify how to localize the stateless EJB:
For example:
<port name="TestComplexSessionRemotePort" binding="tns:TestComplexSessionRemoteBinding"> <imolaejb:address localizationType="corbaname" name="corbaname:iiop:127.0.0.1:3700#ejb/TestComplexSessionBean"/> </port>
To correctly lookup the EJB, an address is mandatory.
With the Jbi4Ejb binding, the ORB configuration is specified. You can put an arbitrary number or properties between the orb element (all the properties needed to correctly initialize the orb). For example:
<binding name="TestComplexSessionRemoteBinding" type="tns:TestComplexSessionRemote"> <imolaejb:binding> <imolaejb:orb> <imolaejb:property name="org.omg.CORBA.ORBClass" value="com.sun.corba.ee.impl.orb.ORBImpl"/> </imolaejb:orb> </imolaejb:binding> (...) </binding>
To deploy the service unit, the binding is mandatory (otherwise no correct endpoint are recognized).
The optional imolaejb:types extensions at Definition level that can specify Serialization UIDs for the value objects, return types and thrown exceptions.
<imolaejb:types> <imolaejb:serialVersionUID className="it.imolinfo.test14.complex.UserProfile" UID="8891581763048162223"/> <imolaejb:serialVersionUID className="it.imolinfo.test14.complex.UserProfileException" UID="-5706164759540452783"/> </imolaejb:types>