Интеграция Джерси с RMI

У меня есть проект Java Jersey, в котором я запускаю приложение. С другой стороны, у меня есть проект, в котором есть приложение RMI, как я могу заставить эти два работать вместе. Другими словами, как я могу интегрировать RMI/IIOP в приложение Джерси.

Я думал о чем-то вроде этого:

@Path("/items")
public class ItemsResource {
    @Context
    UriInfo uriInfo;
    @Context
    Request request;
        Stuber s = new Stuber();


    @GET
    public Response get() throws RemoteException {
        }

Был ли у меня внешний класс в проекте Джерси, который будет работать как клиент для подключения к RMI/IIOP

public class Stuber {
    Context ic;
    iRemoteLogic logic;

    public Stuber() {
        super();

        Object objref;


            try {
                ic = new InitialContext();

                objref = ic.lookup("LogicService");
                System.out.println("Client: Obtained a ref. to Hello server.");

                logic = (iRemoteLogic) PortableRemoteObject.narrow(
                        objref, iRemoteLogic.class);

Что я должен добавить в класс Stuber, чтобы иметь возможность работать в качестве клиента RMI/IIOP?

Спасибо :)

ПРИМЕЧАНИЕ. Я следовал этому руководству для RMI/IIOP


person rogeliog    schedule 28.05.2012    source источник
comment
Вы хотите вызвать свой класс Stuber из Джерси?   -  person UVM    schedule 28.05.2012


Ответы (1)


Вам нужно будет где-то предоставить реализацию iRemoteService, которая экспортируется через RMI/IIOP (т.е. PortableRemoteObject), и зарегистрировать ее через JNDI как LogicService. Я сомневаюсь, что последнее сработает: вам наверняка нужно будет предоставить протокол и хост для JNDI.

person user207421    schedule 28.05.2012
comment
У меня есть еще одно автономное приложение, которое отлично справляется с этой задачей (The PortableRemoteObject) и получает реализацию. Когда я скопировал код в проект Джерси, он перестал работать. Джерси ограничивает пользователя в этом? О доступе к ресурсам вне сервера? - person rogeliog; 28.05.2012
comment
Я хочу, чтобы класс Stuber работал как клиент RMI, когда я запускаю файл Stuber вне приложения Jersey Tomcat, он отлично работает как клиент. Проблема начинается, когда я пытаюсь интегрировать его в приложение Jersey Tomcat, обычно получаю ClassNotFoundException - person rogeliog; 29.05.2012
comment
@rogeliog Итак, разверните недостающий класс. - person user207421; 30.05.2012