【发布时间】:2016-02-12 18:57:55
【问题描述】:
问题:整个春季似乎无法在 Websphsere 服务器中执行 jndi 查找 EJB 3。一直找不到我的 jndi 名称。我没有看到我有什么问题。对于 Websphere,jndi 名称查找是否需要一些不同的东西?
Stack overflow Reference Question - EJB 3 injection into spring beans
版本:
- 春季版:4.1.2
- WebSphere 服务器版本:7.0.0.27
弹簧错误:
创建名为“myLocalEjb”的 bean 时出错: 调用 init 方法失败;嵌套异常是 javax.naming.NameNotFoundException:上下文:WMTN123456Node10Cell/nodes/WMTN1234569Node10/servers/server1,名称:ejb/myBean:未找到名称 myBean 中的第一个组件。 [根例外是 org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
Spring Config JNDI 查找
<jee:local-slsb id="myLocalEjb"
jndi-name="ejb/myBean"
business-interface="spring.ejbtest.MyBeanLocal"
</jee:local-slsb>
<bean id="targetPOJO" class="different.pojo.localPOJO">
<property name="injectedEJB3" ref="myLocalEjb"/>
</bean>
WebSphere 部署描述符
<ejb-jar id="ejb-jar_ID" version="3.0" metadata-complete="false" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" >
<display-name> MyEJB</display-name>
<enterprise-beans>
<session>
<ejb-name> myBean</ejb-name>
<mapped-name> ejb/myBean</mapped-name>
<business-local> spring.ejbtest.MyBeanLocal</business-local>
<ejb-class> spring.ejbtest.MyBean</ejb-class>
<session-type> Stateless</session-type>
<service-ref>
<service-ref-name> service/someOtherService</service-ref-name>
<service-interface> some.other.service.MyHTTPService</service-interface>
<service-ref-type> some.other.service.MyHTTPService</service-ref-type>
<wsdl-file> META-INF/wsdl/MyHTTPServiceExport.wsdl</wsdl-file>
<service-qname> http://company.foo/service/Service/:MyHTTPService</service-qname>
</service-ref>
</session>
</enterprise-beans>
<assembly-descriptor/>
</ejb-jar>
【问题讨论】: