Ich versuche auf ein Jackrabbit Repository zuzugreifen, das auf einem JBoss-Anwendungsserver über RMI bereitgestellt wird.Wie kann ich einen Server in der Standard-RMI-Registrierung für JBoss registrieren und von einem Client in einer anderen JVM darauf zugreifen?
Ich erhalte die folgende Ausnahme, wenn ich versuche, mit ClientRepositoryFactory.getRepository ('rmi: //xxx.xxx.xxx.xxx: 1099/imageserver') eine Verbindung zur Factory herzustellen. Aber wenn ich eine Webanwendung erstelle, die eine neue RMI-Registrierung auf dem Server mit einem anderen Port startet und Jackrabbit in dieser neuen Registrierung registriert, funktioniert es.
Allerdings muss ich dies mit der minimalen Optimierung auf die Standard-JBoss-Konfiguration arbeiten. Kann also jemand die Ursachen für das Problem beleuchten? Ich habe viele Beiträge zum gleichen Thema an anderer Stelle gesehen und wir haben alle plausiblen (und viele unplausible) Lösungsvorschläge ausprobiert.
org.apache.jackrabbit.rmi.client.RemoteRuntimeException: java.rmi.ConnectIOException: non-JRMP server at remote endpoint
org.apache.jackrabbit.rmi.client.SafeClientRepository.getDescriptor(SafeClientRepository.java:81)
com.btmatthews.freelancer.webapp.servlet.TestServlet.doGet(TestServlet.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
root cause
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:230)
sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
java.rmi.Naming.lookup(Naming.java:84)
org.apache.jackrabbit.rmi.client.ClientRepositoryFactory$1.getRemoteRepository(ClientRepositoryFactory.java:95)
org.apache.jackrabbit.rmi.client.SafeClientRepository.getDescriptor(SafeClientRepository.java:77)
com.btmatthews.freelancer.webapp.servlet.TestServlet.doGet(TestServlet.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)