有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    现在我解决了InitialContext类的注释和全局使用问题。 无状态注释和ejb jar xml文件以及访问全局jndi解决了使用密钥问题

    访问代码:

    this.jndiAddress="ejb/service/IMyInterface";
    Context context = new InitialContext();
    IMyInterface object = (IMyInterface) context.lookup(this.jndiAddress);
    object.doSomething();
    

    服务代码

    IMyInterface。爪哇:

    public interface IMyInterface {
    
        void doSomething();
    
    }
    

    我的班级。爪哇:

    @Remote(IMyInterface.class)
    @Stateless(mappedName="ejb/service/IMyInterface")
    public class MyClass implements IMyInterface {
    
        @EJB
        private IMyUserDao userDao;
    
        @Override
        public void doSomething() {
            User user = userDao.get(1);
            System.out.println(user.getName());
        }
    
    }
    

    ejb jar。xml

    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">
        <display-name>Service</display-name>
        <enterprise-beans>
            <session>
                <ejb-name>MyClass</ejb-name>
                <ejb-class>package.MyClass</ejb-class>
            </session>
            <session>
                <ejb-name>UserDao</ejb-name>
                <ejb-class>package.dao.UserDao</ejb-class>
            </session>
        </enterprise-beans>
    </ejb-jar>
    
  2. # 2 楼答案

    我在线学习了JNDI教程,以帮助我完成所需的工作。它看起来有点旧(并且是为JDK 1.4.2编写的),但仍然适用Sun/Oracle JNDI Tutorial.

  3. # 3 楼答案

    FWIW,如果有人想在Tomcat中拥有自定义JNDI资源,请查看他们的JNDI tutorial