gpt4 book ai didi

java - FitNesse 与 Jenkins : BindException - Possible port clash?

转载 作者:行者123 更新时间:2023-12-01 09:45:23 24 4
gpt4 key购买 nike

运行 FitNesse 测试时经常会出现以下错误消息(至少在五次运行中至少有一次):

Unable to start test system 'slim': fitnesse.slim.SlimError: Got invalid slim header from client. Read the following:

以下内容似乎为空,因此错误消息在冒号之后结束。

日志显示我们自己的代码之外有一个 BindException:

Can not bind to port 8086. Aborting.
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:128)
at fitnesse.socketservice.SocketFactory.createServerSocket(SocketFactory.java:33)
at fitnesse.slim.SlimService.<init>(SlimService.java:102)
at fitnesse.slim.SlimService.startWithFactory(SlimService.java:75)
at fitnesse.slim.SlimService.main(SlimService.java:56)

其原因似乎是端口冲突。 FitNesse 和 Jenkins 在同一台机器上运行。

FitNesse 在用户“jenkins”下使用 Java 7 在端口 8090 上运行:

% netstat -plten | grep 8090
tcp6 0 0 :::8090 :::* LISTEN 113 213626367 17072/java

% ps aux | grep 17072
jenkins 17072 0.5 0.5 9299292 130676 ? Sl 13:25 0:04 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java -jar /opt/FitServer/fitnesse.jar -p 8090

端口 8086 由最新 Java 6 版本的 Jenkins 使用。我们所有在未安装 Java 7 的远程主机上构建的项目都需要此实例。从浏览器(地址:jenkins:8090/TestEnvironment/TestSuite)运行测试以及从 Jenkins 运行自 Action 业时会发生该错误。

% netstat -plten | grep 8086
tcp6 0 0 :::8086 :::* LISTEN 118 134031785 32343/java

% ps aux | grep 32343
jenkins+ 32343 0.7 1.5 15745712 384180 ? Sl Jun01 197:53 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/jenkins-java6/jenkins-java6.war --webroot=/var/cache/jenkins-java6/war --httpPort=8086 --ajp13Port=-1

现在提问:

  • 如何消除此错误?
  • 为什么 FitNesse 连接到端口 8086?有相应的配置吗?
  • FitNesse 对我们的 Jenkins Java 6 实例做了什么?我真的没有看到这里的链接。
  • FitNesse 的端口 8090 是否选择得不好?我尝试将其更改为8050,但也出现错误。

最佳答案

Slim 使用的默认端口确实接近您报告的 8086:请参阅 http://www.fitnesse.org/FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests.SliM 上的“配置 SLIM”部分

您应该能够通过覆盖 slim.port 属性来让它使用不同的端口(范围)。通过向 FitNesse 启动脚本提供额外的属性,或将其放置在“plugins.properties”中:

Those properties can be either provided by a wiki page, on the command line (e.g. -Dslim.port=9000) or in the plugins.properties file.

关于java - FitNesse 与 Jenkins : BindException - Possible port clash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com