繁体   English   中英

ejb 3.1,weblogic 12c,java 1.6 Jndi查找问题

[英]ejb 3.1, weblogic 12c, java 1.6 Jndi Lookup issue

I have problem in configuring JNDI lookup for ejb3.1 and weblogic 12c, jdk1.6

@Remote
public interface Bank{

    public String accounts();

}

@Stateless(name="BankSession")
public class BankSessionBean implements Bank{

    @Override
    public String accounts() {
                 ////////    }

ejb-jar.xml:   

    <enterprise-beans>
        <session>
            <display-name>BankSession</display-name>
            <ejb-name>BankSession</ejb-name>
            <business-remote>com.examples.Bank</business-remote>
            <ejb-class>com.examples.BankSessionBean</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Bean</transaction-type>
        </session>
    <enterprise-beans>

weblogic-ejb-jar.xml:

 <weblogic-enterprise-bean>
    <ejb-name>BankSession</ejb-name>    
    <jndi-name>BankSession</jndi-name>
  </weblogic-enterprise-bean>


client code: 

当我开始使用Jndi时,请使用以下语法查找java:comp / env / ejb / BankSession

其给以下错误。

javax.naming.NameNotFoundException:尝试查找'java:comp / env / ejb / BankSession'时未找到子上下文。

这里,ejbbean和客户端代码在不同的jvm上运行。

我应该使用哪个Jndi查找?

  1. 的java:comp / env的/ EJB / BankSession”
  2. Java的:全球/的applicationName /模块名/ BankSession
  3. 的java:模块/ BankSession
  4. Java的:应用程序/模块名/ BankSession

java:comp / env / ejb / BankSession在ejb 3.0和oc4j服务器上可以正常工作。

当我迁移到ejb3.1和weblogic 12c时,它不起作用。

我什至尝试不使用weblogic部署xml文件。 遇到相同的问题。

我应该如何在这里配置我的Jndi? 由于我长期以来一直面对这个问题,请提供帮助。

对于以java:comp / env / ...形式的查找,您需要在进行查找的组件的部署描述符中有一个EJB ref! java:comp / env / ...始终相对于执行查找的组件。

一个独立于执行该查找并可以在应用程序内部任何地方运行的实际组件的查找名称是4 .: java:app / moduleName / ...

如果您有一天决定重命名您的耳文件,则java:global / appName / ...将失败。 java:module / ...仅在属于同一模块的组件内部工作。 所以4.是IMO的最佳选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM