我试图通过RMI访问部署在JBoss应用服务器上的Jackrabbit存储库。
当我尝试使用ClientRepositoryFactory.getRepository('rmi://xxx.xxx.xxx.xxx:1099 / imageserver')连接到工厂时,我收到以下异常。但是,如果我创建一个Web应用程序,在服务器上使用不同的端口启动新的RMI注册表,并在新的注册表中注册Jackrabbit,它就可以工作。
但是,我需要使用最小的调整到默认的JBoss配置。所以任何人都可以解释问题的原因。我在其他地方看过很多关于同一主题的帖子,我们已经尝试了所有合理的(以及许多不合理的)建议的解决方案。
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)