3

を使用して作成された jar がありますonejar-maven-plugin。これは、tibco からの jms メッセージをリッスンし、それに応じて処理することを目的としています。正常に動作しますが、使用してこの jar に署名jarsignerして実行しようとすると、以下の例外がスローされます。

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署名に使用しても、結果はまったく同じです。私は無知で、この問題に行き詰まっています。

どんな助けでも大歓迎です。

4

1 に答える 1

0

-Xss JVMオプションを増やしてみましたか?最初は4096kに設定し、次に失敗するまで下げます。暗号を操作するには、通常、デフォルトのスタックサイズよりも多くのサイズが必要になる場合があります。Maven jarsignerプラグインの場合、Linuxホームディレクトリの.mavenrcファイルを編集して、次の行を追加できます。

#!/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でこれを行う方法はわかりませんが、同様の解決策が必要です(ここ?

于 2013-03-08T22:16:56.797 に答える