我正在使用EJB和Spring3构建应用程序。我有三个maven模块- Spring jars,EJB jar和web part。在web部件中,我想调用我的EJB会话bean。下面是它的代码:
@Controller
public class IndexController {
@EJB
PaymentRemote paymentRemote;
}我还有一个应用程序上下文文件,其内容如下:
<jee:local-slsb id="paymentRemote" jndi-name="ejb/myBean"
business-interface="net.learntechnology.ejb.PaymentRemote"/>和
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor">
<property name="alwaysUseJndiLookup" value="true"/>
在我的ejb模块中,我有一个接口:
@Local
public interface PaymentRemote {
}不幸的是,当我在JBoss as 5上部署它时,我得到了以下错误:
Error creating bean with name 'paymentRemote': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: ejb not bound.我在net中看到了很多例子,都是这样配置的。我被困住了..。有人能帮我解决这个问题吗?我会非常感激的!
发布于 2010-08-09 20:51:56
对于JBOSS,正确的模式是: application-name/bean/remote或local
发布于 2010-08-09 20:56:25
既然我的评论就是答案,我就换个说法……
确保EJB以您期望的名称实际绑定到JNDI。错误消息表明它不是。
在JBoss中的JMX控制台中,查找JNDIView对象,并调用它的list方法。如果你的EJB在ejb/myBean上,它应该出现在这里。如果不是,请使用不同的名称查找它,并绑定到它。
https://stackoverflow.com/questions/3439557
复制相似问题