Java 通过JNDI(RMI?)访问jboss中的服务

Java 通过JNDI(RMI?)访问jboss中的服务,java,jboss,rmi,jndi,Java,Jboss,Rmi,Jndi,我需要在jboss中创建一个服务,并通过客户端的JNDI访问它。 我一直在使用JNDI,并在客户端制作了如下内容: import javax.naming.*; public class App { public static void main(String[] args) throws NamingException { App app = new App(); app.setSysProp(); app.setObject();

我需要在jboss中创建一个服务,并通过客户端的JNDI访问它。 我一直在使用JNDI,并在客户端制作了如下内容:

import javax.naming.*;

public class App {
    public static void main(String[] args) throws NamingException {
        App app = new App();
        app.setSysProp();
        app.setObject();
        app.getObject();
    }

    public void setSysProp() {
        System.setProperty(Context.PROVIDER_URL, "127.0.0.1:1099");
        System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    }

    public void setObject() throws NamingException {
        Context context = new InitialContext();

        MyObject obj = new MyObject();
        obj.setName("NameOfMyObject");

        context.bind("obj", obj);
    }

    public void getObject() throws NamingException {
        Context context = new InitialContext();

        MyObject obj = (MyObject) context.lookup("obj");

        System.out.println(obj.getName());  
    }
}
这只会将对象绑定到客户端的jndi,并在以后检索它

现在我想在服务器端绑定一个类似的对象(JBoss4.2.3),并通过它在服务器上进行一些操作。如何做到这一点?我读到在这种情况下应该使用名为RMI的东西,但它到底是什么,以及如何使用它

我读到在这种情况下应该使用名为RMI的东西,但它到底是什么,以及如何使用它

RMI是用于远程方法调用的Java标准API。它允许您对驻留在其他Java虚拟机中的对象执行方法。请记住,您不需要像JBoss这样的应用服务器来与远程java对象通信。这提供了一个简单的教程。(注意,JBoss或任何其他应用服务器都没有提到)

我需要在jboss中创建一个服务,并通过客户端的JNDI访问它

这是另一回事。尽管JBoss(作为符合JavaEE规范的服务器)广泛使用RMI,但您不需要了解此API的工作原理。您需要创建一个名为的服务器端组件,它允许您在服务器上运行服务

如何做到这一点

关于如何实现基本EJB,有上百个教程。选择一个与您的JBoss版本兼容的版本,因为一些实现细节经常在不同版本之间发生变化。 您还将发现EJB规范一直在发展。使用JBoss4.2.3和Java5,您可以从EJB3.0开始,它比前一个版本(2.1)更简单