0

我们正在尝试使用来自 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

4

1 回答 1

0

似乎您需要将 EJB 事务类型从 Bean 更改为 Container。

<transaction-type>Container</transaction-type>
于 2013-09-09T16:22:06.647 回答