2015-12-30 77 views
2

我想解密文件使用Bouncy城​​堡v1.53 PGP和使用PGPUtil類。 1)bcpg-jdk15on 2)bcprov-jdk15on充氣城堡沒有這樣的方法錯誤

: 程序在我的Eclipse戰爭文件中集成或部署到使用以下依賴性在WebLogic server.I'm時能正常工作,但考慮到以下錯誤錯誤

java.lang.NoSuchMethodError: 
org.bouncycastle.util.Strings.newList()Lorg/bouncycastle/util/StringList; 
at org.bouncycastle.bcpg.ArmoredInputStream.<init>(Unknown Source) 
at org.bouncycastle.bcpg.ArmoredInputStream.<init>(Unknown Source) 
at org.bouncycastle.openpgp.PGPUtil.getDecoderStream(Unknown Source)` 

分辨率

當我複製下面的類爲我的源文件夾此問題得到解決:

org.bouncycastle.util.Strings 
org.bouncycastle.util.StringList 
org.bouncycastle.bcpg.ArmoredInputStream 
org.bouncycastle.openpgp.PGPUtil` 

通過改變他們的類名

不過,我想比這更好的修復,因爲我覺得這是一些瓶子衝突 請讓我知道,如果有人發現了一個

+0

請提供一些代碼... –

+0

'boolean hasHeaders = true; String header = null; boolean newLineFound = false; 布爾值clearText = false; 布爾重啓= false; StringList headerList = Strings.newList(); // error int lastC = 0; boolean isEndOfStream; private boolean parseHeaders() throws IOException { header = null; int c; int last = 0; boolean headerFound = false; headerList = Strings.newList(); // error if(restart) { headerFound = true; ((c = in.read())> = 0) } else { if(c ==' - '&&(last == 0 || last =='\ n'|| last =='\ r')) { headerFound = true; 休息; } last = c; } }' – user3014515

+0

此代碼位於ArmoredInputStream類內。字符串和StringList這兩個類都是Bouncy Castle的依賴項的一部分 – user3014515

回答

2

該錯誤可能是因爲在使用Eclipse運行時使用的是bouncycastle .jars的一個版本,但是在運行應用程序時Weblogic正在使用的類路徑上有一個不同版本的.jar。

您需要調查Weblogic如何設置類路徑,並確保您需要的.jars版本在預先存在的版本之前位於類路徑中(除非預先存在的版本存在錯誤,在這種情況下您可以從classpath中刪除預先存在的)。