CruiseControl 无法使 Web 界面正常工作

发布于 2024-08-22 21:32:39 字数 3725 浏览 2 评论 0原文

在全新安装 CruiseControl 时,每次启动 CruiseControl 时,都会抛出以下两个异常:

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

On a fresh installation of CruiseControl, every single time I start CruiseControl, I get the following two exceptions thrown:

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)

Before and after these nothing seems to (obviously) go wrong. And as a result, I cannot view the web dashboard of CruiseControl. Any ideas on what is going wrong here?


Full stack traces:

[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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

断桥再见 2024-08-29 21:32:39

CC 启动时是否还有仍在运行的 Java 程序?

此线程中所示:

我注意到,当我重新启动 Cruisecontrol 时,我需要终止所有剩余的 Java 程序,否则会发生端口类错误。
解决办法是:

  • 停止巡航控制
  • 终止所有剩余的 cvs 和 java 程序。
  • 等待 30 秒。
  • 启动巡航控制。

OP bguiz 在评论中添加了他自己的食谱:

  • 停止巡航控制
  • 终止所有剩余的 cvs 和 java 程序。
  • 重新启动计算机,
  • sc 删除 CruiseControl,
  • wrapper -iwrapper.conf。
  • 启动巡航控制

Do you have any Java program still running at the time of CC starting?

As illustrated in this thread:

I've noticed when I restart cruisecontrol I need to kill any remaining java programs or a port class error will occur.
The solution is to:

  • Stop cruisecontrol
  • Kill any remaining cvs and java programs.
  • Wait 30 seconds.
  • Start cruisecontrol.

The OP bguiz adds in the comments his own recipe:

  • Stop CruiseControl
  • Kill any remaining cvs and java programs.
  • Restart computer,
  • sc delete CruiseControl,
  • wrapper -i wrapper.conf.
  • Start CruiseControl
追我者格杀勿论 2024-08-29 21:32:39

看起来您的计算机上运行着另一个应用程序服务器,该服务器使用与巡航控制服务器相同的端口。
您是否在新服务器上部署 Cruise Control?它是什么服务器?

尝试停止计算机上的所有服务器,然后尝试再次启动巡航控制。

It looks like you just have another application server running on your machine that uses the same ports as your cruise control server.
Do you deploy Cruise Control on a new server? What server is it?

Try to stop all the servers on your machine and try to launch cruise control again.

初雪 2024-08-29 21:32:39

如果您使用 Windows 服务包装器来启动 CruiseControl,则 RMI 端口默认设置为 1099。您可以通过编辑 CruiseControl 安装目录中的wrapper.conf 文件来更改此端口。您可能需要在命令提示符处运行“netstat”以列出系统当前使用的所有端口。然后选择一个不与任何其他服务器或进程冲突的服务器。
终止所有其他进程并不总是一种选择。

If you are using the windows service wrapper to launch CruiseControl, the RMI port is set to 1099 by default. You can alter this port by editing the wrapper.conf file in your CruiseControl installation directory. You might want to run 'netstat' at a command prompt to list all the ports your system is currently using. Then pick one that doesn't conflict with any other server or process.
Killing all other processes isn't always an option.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文