Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复';此位置的预期堆栈映射帧';在Jenkins插件中_Java_Jenkins - Fatal编程技术网

Java 如何修复';此位置的预期堆栈映射帧';在Jenkins插件中

Java 如何修复';此位置的预期堆栈映射帧';在Jenkins插件中,java,jenkins,Java,Jenkins,我正在维护一个jenkins插件,它已经公开使用两年了。最近,它停止了显示“此位置的预期堆栈映射帧”JVM错误的工作 有一些话题在讨论这个问题,但没有一个答案能真正提供有用的解决方案。一个建议的解决方案是使用-XX:-UseSplitVerifier选项配置JVM。然而,通过强制每个jenkins服务器安装来更新其JVM配置,这是不实际的 到目前为止,我所做的是将Java编译版本设置为7,并将所有MVN依赖项更新为其最新版本,并执行干净的重建。到目前为止没有任何进展。我仍然得到这个错误: jav

我正在维护一个jenkins插件,它已经公开使用两年了。最近,它停止了显示“此位置的预期堆栈映射帧”JVM错误的工作

有一些话题在讨论这个问题,但没有一个答案能真正提供有用的解决方案。一个建议的解决方案是使用-XX:-UseSplitVerifier选项配置JVM。然而,通过强制每个jenkins服务器安装来更新其JVM配置,这是不实际的

到目前为止,我所做的是将Java编译版本设置为7,并将所有MVN依赖项更新为其最新版本,并执行干净的重建。到目前为止没有任何进展。我仍然得到这个错误:

javax.servlet.ServletException: java.lang.VerifyError: Expecting a stackmap frame at branch target 53
Exception Details:
  Location:
    com/loadimpact/ApiTokenClient.isValidToken()Z @0: aload_0
  Reason:
    Expected stackmap frame at this location.
  Bytecode:
    0x0000000: 2ab4 00db 12ac b901 5902 0004 bd01 5f59
    0x0000010: 03b2 0163 53b9 0167 0200 b901 cf01 004c
    0x0000020: 2bb6 017f b901 d301 00b2 01d7 a600 0704
    0x0000030: a700 0403 ac4c 2ab4 00d7 bb01 d959 b701
    0x0000040: da13 01dc b601 e02b b601 e3b6 01e5 b601
    0x0000050: e803 ac                                
  Exception Handler Table:
    bci [0, 52] => handler: 53

    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
我的测试环境是Ubuntu 15.04,OpenJDK运行时环境(build 1.8.0_45-internal-b14)运行最新的Jenkins(版本1.611)

该插件(现在)依赖于最新的jenkins父插件

<parent>
    <groupId>org.jenkins-ci.plugins</groupId>
    <artifactId>plugin</artifactId>
    <version>1.610</version>
</parent>

org.jenkins-ci.plugins
插件
1.610

因此,我的问题很简单:如果我只能为插件指定依赖项和编译选项(即不要求人们更改Jenkins配置),我如何解决这个问题?

如果你是编译maven插件的人,使用
source=1.6
target=1.6.
编译应该可以解决您的问题。我使用Gradle和“Gradle JPI”插件构建的Jenkins插件也有同样的问题。在本地一切正常,但是jenkins在调用插件代码时抛出了这个异常,即使我在构建jenkins插件和运行jenkins服务器实例时使用了相同的JDK版本。更正:事实证明,只有在调试模式下通过“gradle server”运行jenkins时,它才在本地工作如果我使用“java-jar-Dhudson.DNSMultiCast.disabled=true-DJENKINS_HOME=./work/opt/jenkins-620.war”@jens.riboe运行它,它就不起作用了。您的项目(或您使用的库)是否有可能使用Lombok?我发现我的詹金斯失败发生在我使用的一个库中,该库有一些“lombok”步骤。到目前为止,我似乎应该摆脱这种依赖