jndi绑定在jboss4.2.3和ejb3上

时间:2011-01-05 05:08:55

标签: jboss ejb-3.0 jndi

我正在尝试使用ejb3注释在jboss 4.2.3上部署无状态ejb。一切都正确构建和部署,并且在jboss启动时我没有遇到任何错误。但是,当我查看jboss中的绑定时,ejb没有绑定到任何JNDI位置进行查找。以下是我的ejb内容。

远程

@Remote
public interface TestWebService {

public String TestWebMethod(String param1, String param2);

}

无状态EJB

@Stateless
@RemoteBinding(jndiBinding="TestWeb")
@Remote(TestWebService.class)

public class TestWebServiceBean implements TestWebService{

public String TestWebMethod(String param1, String param2) {
    System.out.println("HELLO "+param1+" "+param2);
    return "Welcome!!";
}

 }

我已经尝试过没有@Remote和@RemoteBinding,但它并没有什么区别。我还添加了ejb-jar.xml文件(ejb3不需要这个文件),这似乎没什么区别。下面是我在启动时在jboss日志中看到的输出。

installing MBean: jboss.j2ee:ear=ejb_web_service_ear-0.0.1-    SNAPSHOT.ear,jar=ejb_web_service-0.0.1-SNAPSHOT.jar,name=TestWebServiceBean,service=EJB3 with dependencies:
 21:56:00,633 INFO  [EJBContainer] STARTED EJB: com.tomax.ejb.TestWebServiceBean ejbName: TestWebServiceBean

1 个答案:

答案 0 :(得分:4)

我想出来了,所以如果其他人有类似的问题,希望这会有所帮助。首先,我在jboss 4.2.3中有不正确的注释包,它们应该是org.jboss.anotation.ejb。*对于这个版本的jboss,在5及以上版本已经改变了。此外,我的ear文件中还有一些额外的依赖jar,因为它们是由容器提供的,所以不应该包括在内。一旦我删除了它,那就有效了。