Java 通过JNDI(RMI?)访问jboss中的服务
我需要在jboss中创建一个服务,并通过客户端的JNDI访问它。 我一直在使用JNDI,并在客户端制作了如下内容: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();
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)更简单