2

CruiseControl の新規インストールでは、CruiseControl を起動するたびに、次の 2 つの例外がスローされます。

ontrollerAgent- Exception starting httpAdaptor
java.net.BindException: Address already in use: JVM_Bind
        at java.net.PlainSocketImpl.socketBind(Native Method)

ontrollerAgent- Exception starting connectorServer
java.io.IOException: Cannot bind to URL [jrmp]: javax.naming.NameAlreadyBoundException: jrmp [Root exception is java.rmi.AlreadyBoundException: jrmp]
        at javax.management.remote.rmi.RMIConnectorServer.newIOException(Unknown Source)

これらの前後では、(明らかに) 何も問題がないようです。その結果、CruiseControl の Web ダッシュボードを表示できません。ここで何がうまくいかないのかについてのアイデアはありますか?


完全なスタック トレース:

[cc]Feb-25 16:33:49 ontrollerAgent- Starting HttpAdaptor with CC-Stylesheets
[cc]Feb-25 16:33:49 ontrollerAgent- starting httpAdaptor
[cc]Feb-25 16:33:49 ontrollerAgent- Exception starting httpAdaptor
java.net.BindException: Address already in use: JVM_Bind
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(Unknown Source)
        at java.net.ServerSocket.bind(Unknown Source)
        at java.net.ServerSocket.<init>(Unknown Source)
        at mx4j.tools.adaptor.PlainAdaptorServerSocketFactory.createServerSocket (PlainAdaptorServerSocketFactory.java:24)
        at mx4j.tools.adaptor.http.HttpAdaptor.createServerSocket(HttpAdaptor.java:672)
        at mx4j.tools.adaptor.http.HttpAdaptor.start(HttpAdaptor.java:478)
        at net.sourceforge.cruisecontrol.jmx.CruiseControlControllerAgent.start(CruiseControlControllerAgent.java:172)
        [truncated]

[cc]Feb-25 16:33:49 ontrollerAgent- starting rmiRegistry
[cc]Feb-25 16:33:49 ontrollerAgent- Port 1099 is already in use, so no new rmiRe
gistry is started
[cc]Feb-25 16:33:49 ontrollerAgent- starting connectorServer
[cc]Feb-25 16:33:50 ontrollerAgent- Exception starting connectorServer
java.io.IOException: Cannot bind to URL [jrmp]: javax.naming.NameAlreadyBoundException: jrmp [Root exception is java.rmi.AlreadyBoundException: jrmp]
        at javax.management.remote.rmi.RMIConnectorServer.newIOException(Unknown Source)
        at javax.management.remote.rmi.RMIConnectorServer.start(Unknown Source)
        at net.sourceforge.cruisecontrol.jmx.CruiseControlControllerAgent.start(CruiseControlControllerAgent.java:190)
        at net.sourceforge.cruisecontrol.Main.startJmxAgent(Main.java:137)
        at net.sourceforge.cruisecontrol.Main.start(Main.java:115)
        at net.sourceforge.cruisecontrol.launch.Launcher.run(Launcher.java:259)
        at net.sourceforge.cruisecontrol.launch.Launcher.main(Launcher.java:117)

Caused by: javax.naming.NameAlreadyBoundException: jrmp [Root exception is java.
rmi.AlreadyBoundException: jrmp]
        at com.sun.jndi.rmi.registry.RegistryContext.bind(Unknown Source)
        at com.sun.jndi.rmi.registry.RegistryContext.bind(Unknown Source)
        at javax.naming.InitialContext.bind(Unknown Source)
        at javax.management.remote.rmi.RMIConnectorServer.bind(Unknown Source)
        ... 6 more
Caused by: java.rmi.AlreadyBoundException: jrmp
        at sun.rmi.registry.RegistryImpl.bind(Unknown Source)
        at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
        at sun.rmi.server.UnicastServerRef.oldDispatch(Unknown Source)
        at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
        at sun.rmi.transport.Transport$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        [truncated]
2010-02-25 16:33:50.710::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
2010-02-25 16:33:50.850::INFO:  jetty-6.1.11
2010-02-25 16:33:51.161:/dashboard:INFO:  Initializing Spring root WebApplicationContext
4

3 に答える 3

1

CC の起動時に実行中の Java プログラムはありますか?

このスレッドに示されているように:

CruiseControl を再起動するときに、残りの Java プログラムを強制終了する必要があることに気付きました。そうしないと、ポート クラス エラーが発生します。解決策は次のとおりです。

  • クルーズコントロールを停止
  • 残りの cvs および Java プログラムをすべて終了します。
  • 30 秒待ちます。
  • クルーズコントロールを開始します。

OP bguizは、コメントに彼自身のレシピを追加します。

  • クルーズコントロールを停止
  • 残りの cvs および Java プログラムをすべて終了します。
  • コンピューターを再起動、
  • sc クルーズ コントロールを削除します。
  • wrapper -i wrapper.conf.
  • クルーズコントロールを開始
于 2010-02-25T07:07:11.740 に答える
0

クルーズ コントロール サーバーと同じポートを使用する別のアプリケーション サーバーがマシンで実行されているようです。Cruise Control を新しいサーバーに展開しますか? 何のサーバーですか?

マシン上のすべてのサーバーを停止して、クルーズ コントロールを再度起動してみてください。

于 2010-02-25T07:04:31.637 に答える
0

Windows サービス ラッパーを使用して CruiseControl を起動している場合、RMI ポートはデフォルトで 1099 に設定されています。このポートは、CruiseControl インストール ディレクトリの wrapper.conf ファイルを編集することで変更できます。コマンド プロンプトで「netstat」を実行して、システムが現在使用しているすべてのポートを一覧表示することができます。次に、他のサーバーまたはプロセスと競合しないものを選択します。他のすべてのプロセスを強制終了することは、常にオプションとは限りません。

于 2011-04-28T12:53:18.723 に答える