在TomEE上访问OpenEJB示例Web服务时查找错误

时间:2011-10-27 22:46:54

标签: java web-services tomcat openejb apache-tomee

我正在尝试使用OpenEJB编写一个简单的Web服务。我从TomEE项目的示例代码(webapps / ejb-webservice)开始:

http://www.apache.org/dyn/closer.cgi/openejb/4.0.0-beta-1/examples-4.0.0-beta-1-src.tar.gz

服务类使用注释:

@Stateless
@WebService(portName = "CalculatorPort",
        serviceName = "CalculatorWebService",
        targetNamespace = "http://superbiz.org/wsdl")
public class Calculator {
    public int sum(int add1, int add2) {
        return add1 + add2;
    }

    public int multiply(int mul1, int mul2) {
        return mul1 * mul2;
    }
}

一切都很好。将战争部署到服务器也没问题(我正在使用TomEE 1.0.0-beta-1-webprofile),但尝试访问此Web服务会从内部OpenEJB方法触发一系列NameNotFoundException:

2011-10-27 21:54:32,029 - ERROR - Error in safeBind method
javax.naming.NameNotFoundException: Name openejb is not bound in this Context
...
2011-10-27 21:54:32,031 - ERROR - Error in safeBind method
javax.naming.NameNotFoundException: Name TransactionManager is not bound in this Context
...
2011-10-27 21:54:32,033 - ERROR - Error in safeBind method
javax.naming.NameNotFoundException: Name TransactionSynchronizationRegistry is not bound in this Context
...
2011-10-27 21:54:32,034 - ERROR - Error in safeBind method
javax.naming.NameNotFoundException: Name ORB is not bound in this Context
...
2011-10-27 21:54:32,036 - ERROR - Error in safeBind method
javax.naming.NameNotFoundException: Name HandleDelegate is not bound in this Context

我发现了一个类似查找错误的帖子:

http://openejb.979440.n4.nabble.com/EJB-2-1-OpenEJB-Tomcat-Datasource-Name-openejb-is-not-bound-in-this-Context-td3331555.html

但问题是使用名称查找方法。在示例代码中,没有显式查找。

有人能说出这个问题的根源吗?

1 个答案:

答案 0 :(得分:2)

将其移至答案,因为它可能有助于其他人看到它在stackoverflow搜索中被列为已解决。

解决方案是使用支持JAX-WS的TomEE Plus以及JAX-RS和JMS等其他一些技术。