首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用onejar-maven-plugin创建的签名jar抛出堆栈溢出异常

使用onejar-maven-plugin创建的签名jar抛出堆栈溢出异常
EN

Stack Overflow用户
提问于 2013-01-31 18:11:48
回答 1查看 390关注 0票数 3

我有一个使用onejar-maven-plugin创建的jar,它的目的是侦听来自tibco的jms消息并进行相应的处理。它工作得很好,但是当我使用jarsigner对这个jar进行签名并尝试运行它时,它抛出了下面的异常:

代码语言:javascript
复制
org.apache.commons.logging.LogConfigurationException: java.lang.StackOverflowError (Caused by java.lang.StackOverflowError)
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:538)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:89)
    at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:59)

    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:61)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:136)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.adobe.jobcloud.envoy.client.PushToPrereleaseWorker.main(PushToPrereleaseWorker.java:33)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.simontuffs.onejar.Boot.run(Boot.java:340)
    at com.simontuffs.onejar.Boot.main(Boot.java:166)
Caused by: java.lang.StackOverflowError
    at com.simontuffs.onejar.OneJarFile.getJarEntry(OneJarFile.java:43)
    at java.util.jar.JarFile.getManEntry(Unknown Source)
    at java.util.jar.JarFile.getManifestFromReference(Unknown Source)
    at java.util.jar.JarFile.getManifest(Unknown Source)
    at java.util.jar.JarFile.maybeInstantiateVerifier(Unknown Source)
    at java.util.jar.JarFile.getInputStream(Unknown Source)
    at com.simontuffs.onejar.OneJarFile.getJarEntry(OneJarFile.java:50)
    at java.util.jar.JarFile.getManEntry(Unknown Source)
    at java.util.jar.JarFile.getManifestFromReference(Unknown Source)
    at java.util.jar.JarFile.getManifest(Unknown Source)
    at java.util.jar.JarFile.maybeInstantiateVerifier(Unknown Source)
    at java.util.jar.JarFile.getInputStream(Unknown Source)
    at com.simontuffs.onejar.OneJarFile.getJarEntry(OneJarFile.java:50)
    at java.util.jar.JarFile.getManEntry(Unknown Source)
    at java.util.jar.JarFile.getManifestFromReference(Unknown Source)
    at java.util.jar.JarFile.getManifest(Unknown Source)

同样,如果我使用maven-jarsigner-plugin对其进行签名,结果也完全相同。我对这个问题一窍不通。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2013-03-09 06:16:57

您是否尝试过增加-Xss JVM选项?到4096k,然后降低它,直到它再次失败。使用密码通常需要比默认堆栈更大的堆栈大小。对于maven jarsigner插件,您可以编辑linux主目录中的.mavenrc文件,并添加以下行:

代码语言:javascript
复制
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-6-sun-i586 #(or another)
export M2_HOME=/usr/local/lib/apache-maven/apache-maven-3.0.4
export MAVEN_OPTS="-Xss4096k -XX:MaxPermSize=128m -Xmx384m"

我不知道如何在windows下做到这一点,但肯定有类似的解决方案(here?)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14623222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档