[英]EJB 3.1 problems
我尝试在jboss7服务器上部署jboss5 bean项目捆绑包。 另一个开发人员已经进行了一些更改,使代码可以在jboss7上运行,例如将jboss-deployment-structure.xml放入项目中。
我创建了两个bean,一个在项目A(BeanA)中,一个在项目B(BeanB)中。 BeanA必须查找BeanB。 我总是得到“找不到绑定类型为de.foo.soa.foobar.ba.ProjectB / BeanB的'de.foo.soa.foobar.al.BeanB'接口的EJB。
豆B:
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
@Stateless
@LocalBean
public class NumSrvLocalBean {
public String testNumSrv() {
return "numsrv works";
}
}
Bean A执行以下操作:
@EJB private NumSrvLocalBean numSrvLocalBean;
private String numSrvLocalBean_path = "java:module/NumSrvLocalBean!de.foo.soa.foobar.al.NumSrvLocalBean";
ctx = new InitialContext();
numSrvLocalBean = (NumSrvLocalBean) ctx.lookup(numSrvLocalBean_path);
我还向jboss-deployment-structure.xml添加了正确的依赖项:
<module name="deployment.ProjectB.jar" export="true"/>
因此,一切对我来说都很好,但我总是会遇到这种例外情况。 我创建了自己的项目,将其称为项目X。在这里,我可以从所有其他项目(大约15个)中查找我想要的任何Bean。 我无法将项目A之外的任何bean注入项目A。但是我可以将项目内部的bean注入。 因此,必须有某种东西可以阻止项目中的bean。
我在项目A中有此文件:
我期待着您的四个想法,
问候。
我通过使用EJB(mappedName =“ java:global / ....”)解决了这个问题。 我已经尝试过EJB(mappedName = className.JNDI_NAME),但这没有用。 我们在JBoss 5中使用了Interfaces,在其中我们定义了JNDI名称,例如
@Local
public interface ClassNameLocal extends ClassNameInterface {
/** Name im JNDI (Java Naming and Directory Interface) */
public final static String JNDI_NAME = "foo/bar/and/so/on/ClassName/local";
}
这似乎不再起作用。 我需要使用完整路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.