我尝试在jboss7服务器上部署jboss5 bean项目包。另一个开发人员已经对代码可以在jboss7上进行了一些更改,比如将jboss-deployment-structure.xml放到项目中。
我创建了两个bean,一个在项目A(BeanA)中,另一个在项目B(BeanB)中。 BeanA必须查找BeanB。我总是得到"没有找到类型为' de.foo.soa.foobar.al.BeanB'的接口的EJB。用于绑定de.foo.soa.foobar.ba.ProjectB / BeanB。
Bean 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"/>
所以,对于我的理解,evertything是好的,但我总是得到这个例外。我创建了自己的项目,让我们称之为项目X.在那里我可以从所有其他项目中查找我想要的任何Bean(大约15个)。我不能在项目A中注入项目A之外的任何bean。但我可以在项目中注入bean。所以必须有一些东西阻止项目内的bean。
我在项目A中得到了这些文件:
我期待你的四个想法,
问候。
答案 0 :(得分:0)
我通过使用EJB解决了这个问题(mappedName =&#34; 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";
}
这似乎不再起作用了。我需要使用完整的路径。