在我的bean xml中从Spring 2.5升级到4时,我收到“ javax.naming.NameNotFoundException”。

时间:2019-07-04 13:37:05

标签: spring jboss migration ejb

我正在尝试将Spring Web应用程序从Spring 2.5升级到Spring 4。 我还将我的应用程序从weblogic升级到jboss eap 7.2。

我的应用程序使用EJB无状态bean映射,如下所示 @Stateless(名称=“ xxxxxFacade”,mappedName =“ xxxxxx记录”)

我的Bean Xml如下所示

Bean XML:

<bean id="xxxxxFacade"
        class="org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean">
        <property name="jndiName"
            value="msgLogging#com.xxx.xxxx.xxxxLoggingFacade" />
        <property name="businessInterface"
            value="com.xxx.xxxx.xxxxLoggingFacade" />
    </bean>

启动Jboss EAP 7.2时出现以下异常

相关原因:org.springframework.beans.factory.BeanCreationException:在类路径资源[beans.xml]中定义名称为“ xxxxxFacade”的bean创建错误:初始化方法的调用失败;嵌套的异常是javax.naming.NameNotFoundException:msgLogging#com.xxx.xxxx.xxxxLoggingFacade-服务jboss.naming.context.java。“ msgLogging#com.xxx.xxxx.xxxxLoggingFacade”

无法找到根本原因,这是由于jboss还是spring升级引起的,请帮助。

1 个答案:

答案 0 :(得分:0)

由于Jboss升级,ejb的部署方式有所不同,我们需要像下面这样指定jndi的值

ejb:applcation / module / uniqueName!JavaClass的完整路径。

EX:

<property name="jndiName"           value="ejb:ApplcationName/ModuleName/UniqueName!com.xx.xx.xx.xxxFacade" />

问题在此之后解决。