我们正在尝试使用来自 EJB 2.0 的 web 服务。客户端代码是使用带有 Apache CXF 2.7.6 的 soapUI 创建的。当我们尝试从 de EJB 内部调用服务时出现问题,出现错误:“javax.ejb.EJBException: java.rmi.RemoteException: Application error: BMT stateless bean ServiceBean should complete transactions before return (ejb1.1 spec, 11.6.1)"
ejb 事务声明为
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
我们还尝试从事务中排除调用 web 服务的 de 方法
<container-transaction>
<method>
<ejb-name>ServiceEJB</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>ServiceEJB</ejb-name>
<method-name>cxfServiceCall</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
我正在阅读,CXF 是否与 EJB 2.0 不兼容?可能有什么问题?
PS:我们使用的是 Jboss 4.2.3