1

Tomcat(6.0.35)にデプロイするSpring MVC Webアプリ(WAR)があり、デプロイ時に別のJVM内でスレッドを起動し(理由は聞かないでください-の設計ではありません)、ポートを介してRMIを介してそのスレッドと通信します8888。

完全に複雑であるにもかかわらず、これは昨日まで完全に正常に機能していました。現在、スレッドは起動時に失敗し、ミックスにログインを追加するための最善の努力にもかかわらず、壁にぶつかっています。これは、ログで見つけることができる唯一の例外です。

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は、Controllerこのデーモン/生成されたRMIスレッドのキックオフを担当するSpringMVCです。このエラーの言い回しに基づいて、この「接続が拒否されました」エラーの原因が何であるかを誰かが知っていますか?

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
4

2 に答える 2

2

コメントをこの回答に移します。

ログのすべては、問題がポート8888で接続している他のマシンにあることを示しています。netstat結果は、そのポートでリッスンしているプロセスがないことを示しています。したがって、ログに接続エラーがあります。

次のステップは、他のマシン(または他のJVM)上のアプリケーションがまったく実行されているかどうかを確認することです(例ps ax|grep java)。そして、もしそうなら-RMIサービスを開始できなかった理由の手がかりがないかログをチェックしてください-そうでなければ-それを開始してください。

通常、アプリケーションがソケットを開くことができない場合は、他のアプリケーションがすでにポートを使用していることが原因です。あなたの状況ではそうではありません。同じアプリケーションの2つのインスタンスが開始された可能性があります。最初のアプリケーションは8888ポートを使用し、2番目のアプリケーションは8888を使用できず失敗し、最初のアプリケーションはシャットダウンされました。結局のところ、誰もポートを聞いていないことになります。

于 2012-06-12T11:01:47.173 に答える
0

この「接続が拒否されました」エラーの原因が何であるかを誰かが知っていますか?

スタックトレースにあります。

java.lang.NoClassDefFoundError: org/springframework/web/context/ContextCleanupListener

デプロイメントには、そのクラス、つまり、それが含まれるJARファイルがありません。

于 2012-06-12T10:46:38.360 に答える