RMI Zugriff zwischen zwei WAR Projekten

RMInoob

Neues Mitglied
Moin, ich habe zwei WAR Projekte welche auf einem Glassfish Server liegen und möchte mittels RMI/JNDI auf Methoden des einen Projekts zugreifen.
Das Binden scheint zu funktionieren, jedoch bekommen wir bei dem Lookup folgenden Fehler:
java.lang.ClassCastException: com.sun.proxy.$Proxy290 cannot be cast to projekt2014.dao.IUserDao

Server:
IUserDao
Java:
public interface IUserDao extends Remote {
    void testRMI()throws RemoteException;
    
}

UserDaoImpl
Java:
@Stateless
public class UserDaoImpl extends UnicastRemoteObject implements IUserDao{

    private static final long serialVersionUID = 7288416492240640633L;
    
    public UserDaoImpl() throws RemoteException{
        super();
    }

    @Override
    public Class[] value() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Class<? extends Annotation> annotationType() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void testRMI() throws RemoteException {
        System.out.println("RMI GEHT");
        
    }
}

Binden
Java:
        try {

            LocateRegistry.createRegistry(1099);
            rmiRegister = new UserDaoImpl();
            Naming.bind("rmi://localhost/rmifi", rmiRegister);
            System.out.println("RMI-Facade wurde registriert!");

        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (AlreadyBoundException ex) {
            Logger.getLogger(Jndi.class.getName()).log(Level.SEVERE, null, ex);
        }



Client:
IUserDao
Java:
public interface IUserDao extends Remote {
    void testRMI()throws RemoteException;
}

UserDaoImpl
Java:
public class UserDaoImpl  {

    private static UserDaoImpl instance = null;
    private static String adress = "rmi://localhost:1099/rmifi";
    private static IUserDao udl = null;

    public static UserDaoImpl getInstance() {
        if (instance == null) {
            try {
                instance = new UserDaoImpl();
                System.out.println("LOOKUPP;:"+Naming.lookup(adress));
                udl = (IUserDao) Naming.lookup(adress);
                
            } catch (NotBoundException ex) {
                Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MalformedURLException ex) {
                Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
            } catch (RemoteException ex) {
                Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return null;
    }

    public IUserDao getRmiFacade() {
        return udl;
    }
}

Methodenaufruf
Java:
        try {        
            IUserDao udl = UserDaoImpl.getInstance().getRmiFacade();
            udl.testRMI();
        } catch (RemoteException ex) {
            Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
        }

Ich hoffe jemand hat eine Idee parat die mir helfen könnte. :toll:

Mfg
 
Zuletzt bearbeitet:

aymeba

Neues Mitglied
Könntest du schreiben die Deklaration von: rmiRegister ?

Moin, ich habe zwei WAR Projekte welche auf einem Glassfish Server liegen und möchte mittels RMI/JNDI auf Methoden des einen Projekts zugreifen.
Das Binden scheint zu funktionieren, jedoch bekommen wir bei dem Lookup folgenden Fehler:


Server:
IUserDao
Java:
public interface IUserDao extends Remote {
    void testRMI()throws RemoteException;
    
}

UserDaoImpl
Java:
@Stateless
public class UserDaoImpl extends UnicastRemoteObject implements IUserDao{

    private static final long serialVersionUID = 7288416492240640633L;
    
    public UserDaoImpl() throws RemoteException{
        super();
    }

    @Override
    public Class[] value() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Class<? extends Annotation> annotationType() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void testRMI() throws RemoteException {
        System.out.println("RMI GEHT");
        
    }
}

Binden
Java:
        try {

            LocateRegistry.createRegistry(1099);
            rmiRegister = new UserDaoImpl();
            Naming.bind("rmi://localhost/rmifi", rmiRegister);
            System.out.println("RMI-Facade wurde registriert!");

        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (AlreadyBoundException ex) {
            Logger.getLogger(Jndi.class.getName()).log(Level.SEVERE, null, ex);
        }



Client:
IUserDao
Java:
public interface IUserDao extends Remote {
    void testRMI()throws RemoteException;
}

UserDaoImpl
Java:
public class UserDaoImpl  {

    private static UserDaoImpl instance = null;
    private static String adress = "rmi://localhost:1099/rmifi";
    private static IUserDao udl = null;

    public static UserDaoImpl getInstance() {
        if (instance == null) {
            try {
                instance = new UserDaoImpl();
                System.out.println("LOOKUPP;:"+Naming.lookup(adress));
                udl = (IUserDao) Naming.lookup(adress);
                
            } catch (NotBoundException ex) {
                Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MalformedURLException ex) {
                Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
            } catch (RemoteException ex) {
                Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return null;
    }

    public IUserDao getRmiFacade() {
        return udl;
    }
}

Methodenaufruf
Java:
        try {        
            IUserDao udl = UserDaoImpl.getInstance().getRmiFacade();
            udl.testRMI();
        } catch (RemoteException ex) {
            Logger.getLogger(Mp3ArtistDao.class.getName()).log(Level.SEVERE, null, ex);
        }

Ich hoffe jemand hat eine Idee parat die mir helfen könnte. :toll:

Mfg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
G War zugriff auf Ejb in EAR Allgemeines EE 0
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
G Nativer bzw. direkter Zugriff auf Active Directory Allgemeines EE 4
B Cookie beim erstem Zugriff auf Web-App ablegen Allgemeines EE 3
T JMX und ServiceMBean - Zugriff mittels Client Allgemeines EE 2
W JSP Zugriff auf RemoteInterfaces Allgemeines EE 2
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
Y Zugriff auf Files aus einer EAR Anwendung Allgemeines EE 8
F problem mit nullpointer bei DB zugriff Allgemeines EE 2
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
J JSF: Zugriff auf message bundle Allgemeines EE 1
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
J geschützter Bean zugriff mit einem Rich-Client Allgemeines EE 2
T Zugriff auf EJB Allgemeines EE 3
L Zugriff auf Manager nur von localhost Allgemeines EE 11
S 1. ContrBean + Image zurück, 2. DB-Zugriff per utilityklasse Allgemeines EE 5
N Zugriff auf Webapp nur für localhost definieren (Tomcat) Allgemeines EE 2
T Zugriff auf persistentes Set in einem Objekt Allgemeines EE 2
R Zugriff auf Dateien in Meta/Web-Inf Verzeichnis Allgemeines EE 7
R Zugriff auf Filter Servlet Allgemeines EE 10
R Zugriff auf Managed Bean aus einem Filter Allgemeines EE 2
N zugriff auf sämtliche navigation rules Allgemeines EE 6
A Zugriff auf Parameter im Deployment Descriptor Allgemeines EE 2
T Zugriff auf Session-Objekte in JSP Allgemeines EE 2
H Velocity: Zugriff auf Sessionvariable? Allgemeines EE 3
S Keystore Zugriff aus Web-Anwendung Allgemeines EE 2
S Alternative zu Properties/ Zugriff außerhalb der Locale Allgemeines EE 7
J In einem Bean zugriff auf ein SessionBean? Allgemeines EE 2
S Kein Zugriff auf Persistence Unit Allgemeines EE 4
K Zugriff auf Dateien beschränken Allgemeines EE 2
K dynamischer Zugriff auf .properties (Struts) Allgemeines EE 2
R Servlet/JSP zugriff auf Thumbnails ausserhalb Webroot Allgemeines EE 3
G Parameterübergabe u. -zugriff bei jsp:include Allgemeines EE 3
K [Tomcat 5.5.12+Axis] Datenbank Zugriff Allgemeines EE 2
K JSF - Zugriff auf Managed Beans Allgemeines EE 2
H JSP Zugriff auf JavaBean Allgemeines EE 4
S zugriff von jsp-seiten auf java klassen Allgemeines EE 3
L Wie bekomme ich denn einen Zugriff auf die EJB ??? Allgemeines EE 7
C [JSP] errorpage: Zugriff auf exception-Objekt Allgemeines EE 2
pkm Wie navigiert man zwischen JSP-Seiten; ist ein POST möglich? Allgemeines EE 2
K Unterschied zwischen JSP & Servlet gegenüber REST mittels JAX-RS Allgemeines EE 1
S JSP Zwischen zwei Formularen Daten austauschen Allgemeines EE 0
R Abhängigkeiten zwischen EJB-JARs Allgemeines EE 0
M Mapping zwischen JPA-Entitäten und Datentypen von Webservices Allgemeines EE 1
G Kommunikation zwischen den Schichtenmodellen Allgemeines EE 3
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
S Unterschied zwischen Tomcat und Application Server? Allgemeines EE 3
byte Trennung zwischen Test- und Produktiv-Umgebung Allgemeines EE 7
G Vergleich zwischen Java Spirng und Ruby on Rails Allgemeines EE 9
N Objekte zwischen zwei Application Contexts austauschen Allgemeines EE 19
M Unterschiede zwischen den EE-Servern? Allgemeines EE 6
M TagLib und Referenzen zwischen Klassen Allgemeines EE 4
R Unterschied zwischen DAO und DTO - Beispiel? Allgemeines EE 7
M Kommunikation zwischen zwei Servlets Allgemeines EE 5
M Attribute setzen/lesen zwischen JSP & Servlet nicht mögl Allgemeines EE 4
M Unterschied zwischen Servlet und Bean/EJB Allgemeines EE 2
V Unterschied zwischen Applicationserver und Servletcontainer Allgemeines EE 4
A Kommunikation zwischen Java Servlet und Bean Allgemeines EE 1
S JEE5: Verwendung von zwei Interfaces Allgemeines EE 4
B Warum zwei Sessioncookies? Allgemeines EE 7
M Zwei Buttons in einem Servlet Allgemeines EE 2
S Struts: zwei JSP's nutzen eine Action Allgemeines EE 5
F doFilter wird zwei mal aufgerufen Allgemeines EE 5
L Zwei Browserfenster mit unterschiedlicher session - geht das Allgemeines EE 3
S Zwei Werte mit XPath vergleichen <x:if>. Allgemeines EE 2
T Zwei Buttons in derselben FORM rufen unterschied. Servlets a Allgemeines EE 10

Ähnliche Java Themen

Neue Themen


Oben