使用 EJB 提供程序
EJB 提供程序答应 WSIF 客户机调用企业 bean。EJB 客户机 JAR 在客户机运行时中必须与当前的提供程序一起提供。企业 bean 是使用正常 EJB 调用方法、RMI-IIOP 和当前安全性与事务上下文调用的。假如在某个事务内调用 EJB 提供程序,则该事务将传递至正在进行的服务,并且将应用标准 EJB 事务属性。
假如存在多个服务实现,则由服务的提供程序确保它们提供了相同的语义。例如,假如存在事务性,则 bean 部署者应指定 TX_REQUIRES_NEW 以强制执行新的事务。
EJB 提供程序 — 编写 WSDL 扩展
EJB 提供程序答应通过 RMI/IIOP 调用企业 bean。为了使用 EJB 提供程序,您需要在 WSDL 中指定此绑定:
<!-- 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="remotehome" />
<input name="nmtoken"? />?
<output name="nmtoken"? />?
<fault name="nmtoken"? />?
</operation>
</binding>
其中 ? 表示可选的,而 * 表示 0 或更多。
注重:
format:typeMap name 属性是其中一个 EJB 操作使用的简单类型或复杂类型的限定名称。
format:typeMap formatType 属性是 Java 类的全限定类名,此 Java 类是由名称指定的元素所映射的。
ejb:operation methodName 属性是操作对企业 bean 调用的方法的名称。
ejb:operation parameterOrder 属性包含空格分隔的部件名列表,它定义了将名称传递至 EJB 方法的顺序。
ejb:operation interface 属性必须设置为“remote”或“home”。该值指定企业 bean 的接口,在此接口上可以访问由 method 属性命名的方法。<service ... >
<port>*
<ejb:address
class="nmtoken"
jndiName="nmtoken"
initialContextFactory="nmtoken" ?
jndiProviderURL="nmtoken" ? />
</port>
</service>
注重:
ejb:address class 属性指定企业 bean 的全限定类名主接口类。
ejb:address jndiName 属性指定用于查找企业 bean 的完整 JNDI 名称。
ejb:address initialContextFactory 属性是可选的,它指定初始上下文生成器类。
ejb:address jndiProviderURL 属性是可选的,它指定 JNDI 提供程序 URL。