배포시 별도의 JVM에서 스레드를 시작하는 Tomcat (6.0.35)에 배포하는 Spring MVC 웹 응용 프로그램 (WAR)이 있습니다 (이유는 묻지 않음 - 은 내 디자인이) 그런 다음 RMI를 통해 포트 8888을 통해 해당 스레드와 통신합니다.스프링/RMI 서버 오류
어쨌든 완전히 까다로워졌지만 지금까지는 스레드가 시작될 때 실패하고 있으며 믹스에 로깅을 추가하려고했지만, 우리는 벽을 치고있다. 이것은 우리가 로그에 찾을 수있는 유일한 예외입니다 :
Jun 12, 2012 3:11:36 AM com.ourapp.ImageController destroy
SEVERE: Shutdown Error: Lookup of RMI stub failed; nested exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused
Jun 12, 2012 3:11:37 AM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/springframework/web/context/ContextCleanupListener
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:80)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3973)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4577)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1165)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1271)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:296)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.ContextCleanupListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
... 12 more
ImageController
이 데몬을 발로을 담당하는 스프링 MVC Controller
입니다/RMI 스레드를 산란. 이 오류의 verbage를 기반으로 아무도 을 가지고 있습니까? 아이디어가 "연결이 거부되었습니다"오류의 원인 일 수 있습니까?
netstat -an | grep 8888
(이것은 Linux 머신입니다)을 실행하면 출력이 나오지 않으므로 해당 포트에서 수신 대기 중입니다. 수정 제안으로 이끄는 아이디어 나 제안에 미리 감사드립니다.
편집 : 여기 우리가보고있는 또 다른 ConnectionException
입니다 :
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
... 74 more
연결하려는 포트/소켓이 차단되거나 닫히지 않았습니까? –
이 로그는 기본적으로 RMI를 통해 연결할 수 없다는 불만이있는 webapp JVM에서 나온 것 같습니다. 다른 서비스의 로그를 조사 할 필요가 있으며 8888에서 수신을 시작하지 않은 이유는 무엇입니까? – maksimov
@indyaah - Linux에 익숙하지 않습니다. 포트 8888이 차단/종료되었는지 알려면 어떤 명령을 사용해야합니까? – IAmYourFaja