2013-10-16 47 views
1

我收到一条错误NamingContext.lookup试图找到ejb/ebj001ini我解决不了。的配置如下:命名上下文和EJB-JAR在TomEE

豆:iportal.Sp001iniB.java

EJB-jar.xml中:(试图将其放置在META-INF和WEB-INF,得到同样的错误)

<enterprise-beans> 
    <session> 
     <display-name>ejb000ini</display-name> 
     <ejb-name>ejb000ini</ejb-name> 
     <home>iportal.Sp000iniH</home> 
     <remote>iportal.Sp000iniS</remote> 
     <ejb-class>iportal.Sp000iniB</ejb-class> 
     <session-type>Stateless</session-type> 
     <transaction-type>Bean</transaction-type> 
    </session> 
    </enterprise-beans> 

    <assembly-descriptor> 
    <container-transaction> 
     <method> 
     <ejb-name>ejb000ini</ejb-name> 
     <method-name>*</method-name> 
     </method> 
     <trans-attribute>Supports</trans-attribute> 
    </container-transaction> 
    </assembly-descriptor> 

的Servlet调用初始化EJB:

InitialContext ctx = new InitialContext(); 
Sp000iniH ih = (Sp000iniH)ctx.lookup("java:comp/env/ejb/ejb000ini"); 
Sp000ini myEjb = ih.create(); 

谢谢!

+0

你试过声明豆名为“EJB/ejb000ini”?或者查找:c.lookup(“java:comp/env/ejb000ini”)。 – Sergio

+0

从来就试用过,但没有工作..也正在改变所有的名字SpXXXini .. I'm丢失,如果你提供像一些代码 – darioaxel

+0

会更容易:接口和EJB声明 – Sergio

回答

0

我有点困惑与部署递减,如果您使用TOMEE您使用EJB 3.X是不是?在这种情况下尝试使用描述符的EJB 3.x版,在这里你能找到一个例子>http://tomee.apache.org/examples-trunk/simple-stateless-with-descriptor/README.html

+0

没有,我没有使用ejb3.x.那就是问题所在。我想部署一个在tomee中使用ejb 2.0描述符的旧应用程序。由于我无法工作,我现在试图将旧的ejb改写成Ejb3.0。我做了一些测试,他们似乎工作,希望整个应用程序的作品也只是需要我几天。 – darioaxel

+0

如果已解决,请不要忘记关闭该问题 – Sergio