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