当前位置: 首页 > 知识库问答 >
问题:

使用StarTeam插件的Jenkins经常出现IOException

栾景胜
2023-03-14

我们有一个Jenkins CI服务器(和许多从属服务器)在Windows机器上运行。我们的代码库位于StarTeam(单独的StarTeam服务器)中,我们经常轮询该服务器。通常情况下,这很有效!

然而,我们经常会看到IOException-远程操作失败(见下文),这会导致生成失败并刷新签入历史记录,从而无法确定谁在后续生成期间签入了什么。我需要帮助找出为什么我们一直看到这些错误:

以下是错误示例,其中在从属节点上执行构建:

    Fjernbygger på machinename (...) in workspace ... 
    java.io.IOException: remote file operation failed: (workspacename) at hudson.remoting.Channel@849755:machinename 
    at hudson.FilePath.act(FilePath.java:916) 
    at hudson.FilePath.act(FilePath.java:893) 
    at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:131) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1251) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513) 
    at hudson.model.Run.execute(Run.java:1706) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:231) 
    Caused by: java.io.IOException: Remote call on machinename failed 
    at hudson.remoting.Channel.call(Channel.java:748) 
    at hudson.FilePath.act(FilePath.java:909) 
    ... 10 more 
    Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.borland.starteam.impl.util.Platform 
    at com.borland.starteam.impl.ClientContext.(Unknown Source) 
    at com.borland.starteam.impl.Server.(Unknown Source) 
    at com.starbase.starteam.Server.(Unknown Source) 
    at hudson.plugins.starteam.StarTeamConnection.initialize(StarTeamConnection.java:196) 
    at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:131) 
    at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:30) 
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2474) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at hudson.remoting.Engine$1$1.run(Engine.java:58) 
    at java.lang.Thread.run(Unknown Source) 

这是否与Jenkins无法轮询starteam服务器有关?这是否与从机上starteam插件的错误配置有关?starteam客户(我相信是2008 R2?)安装在主节点和从节点上。此外,我还遵循了本文中关于将文件复制到主节点上的web inf位置的说明。

我需要一些指示,告诉我应该从哪里开始寻找答案,希望这些答案能提供更多信息。如果我需要提供一些重要的细节来澄清这个问题,请告诉我。

这个和这个看起来有点关联。我的问题也可以通过重新启动从属服务器/重新启动在其上运行的Jenkins服务来解决。这是因为我在从节点上运行Jenkins作为服务吗?服务在从属节点上使用与主节点上相同的用户凭据运行。或者这与机器上的不同JRE环境有关?

共有1个答案

闻人飞翼
2023-03-14

NoClassDefFoundError告诉我们问题与类路径上的starteam JAR有关。问题要么是JAR的位置/存在,要么是JAR的版本。

检查您的web-inf/lib文件夹中是否有starteamstarteam-bridgejar(如果您有桥jar),并且您的类路径上没有多个副本/版本的jar。

另一个解决方案可能是使用较新版本的星际团队jars。我还没有看到jenkins与starteam 2008R2竞争,因此jenkins插件可能需要一个更新的jar(更新的jar将与您的服务器向后兼容)。

 类似资料:
  • 问题内容: Jenkins(Hudson)具有StarTeam插件。如何正确配置? 我已经安装了此插件,但是在构建项目时出现此错误: java.lang.NoClassDefFoundError:com / starbase / starteam / Folder 机器是Windows Server2008。我在文件夹中安装了StarTeam SDK 。 问题答案: 在插件文档页面上有一个提示:

  • 问题内容: 有没有人有正确的代码示例 Jenkins DSL插件中需要设置块来设置git稀疏签出吗? 好像config.xml部分看起来像这样: 问题答案:

  • 问题内容: 我正在使用Jenkins 1.566版和Artifactory插件2.2.2版。 我在自己的码头容器中运行人工制品2.66。它以http运行,但最近我将其更改为https。 现在,如果我将Jenkins配置中的工件服务器URL从http更改为https和端口8443,则会收到错误消息: 如果我转到https url并使用相同的用户名和密码登录成功。为什么会发生此错误,以及如何解决? 任

  • 我试图更新我的几个詹金斯插件(不记得是哪个),但被挂起了。大约15分钟后,我决定重启詹金斯服务器。这是我在詹金斯用户界面上看到的: 我试图将war从1.486更新到1.502,但行为没有改变。我该怎么做才能让詹金斯恢复工作?

  • IntelliJ IDEA 2017.3.4(Community Edition)Build#ic-173.4548.28,2018年1月30日构建jre:1.8.0_152-release-1024-b11 x86_64 jvm:OpenJDK 64位服务器VM,由JetBrains S.r.o Mac OS X 10.13.3开发 代号一插件3.8.3 错误消息:

  • 问题内容: 随着我越来越多地将Groovy与Jenkins Workflow插件配合使用,我开始意识到可以在多个脚本中使用的可重用代码。 共享此代码的最佳方法是什么?是否可以使用共享代码生成我自己的.jar并在Workflow脚本中利用它?还是有更简单的方法? 问题答案: 我实际上通过使用我们自己的git repo最终完成了这项工作,但在工作流库/ src中放置了一个符号链接以指向该repo。