2012-07-16 63 views
1

我試圖實現一個新的安全bean,它依賴於一些Base64編碼。在eclipse中,類編譯得很好,事實上,它在部署到tomcat時生成,在本地運行;然而,當代碼實際上達到了線它調用Spring中的NoSuchMethodError Tomcat應用

Base64.encodeBase64String(rawBytes) 

我得到這個

SEVERE: Servlet.service() for servlet analytics threw exception 
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String([B)Ljava/lang/String; 

我照顧導入我想(org.apache.commons.codec類型。 binary.Base64)並嘗試更改調用以使用方法的絕對包名稱。

當我檢查項目的pom.xml中,我看到下面的存在,並且它是正確的神器,根據Apache站點:

<dependency> 
     <groupId>commons-codec</groupId> 
     <artifactId>commons-codec</artifactId> 
    </dependency> 

尋找在Eclipse的依賴層次視圖,commons-codec jar包含在編譯時1.4版本(包含有問題的類)。

一個類似的問題在這裏建議清除tomcat的工作目錄,所以我沒有這樣做。我不是maven或tomcat的專家,所以任何建議都會有幫助。我知道這是一個非常具體的問題,所以我發佈這個希望有一些線索,並向我自己澄清問題。不過,我會接受任何指向正確方向的答案!

+0

是commans-codec.jar出現在你的WEB-INF/lib文件夾中的webaplication下? – allthenutsandbolts 2012-07-16 17:47:57

+0

yes:commons-codec-1.4.jar – Ben 2012-07-16 18:00:34

回答

1

嘗試使用該庫的最後一個版本:

<dependency> 
    <groupId>commons-codec</groupId> 
    <artifactId>commons-codec</artifactId> 
    <version>20041127.091804</version> 
</dependency> 
+0

做出更改後甚至無法啓動應用程序: [錯誤]無法執行項目目標__.web.analytics:無法解析項目__的依賴關係__。web .analytics:war:1.1.2-SNAPSHOT:未能在http://dev01.__.corp/nexus/content/groups/public中找到commons-codec:commons-codec:jar:20041127.091804緩存在本地存儲庫中,在cond.repo.dev01-public的更新時間間隔已過或強制更新之前,不會重新嘗試分辨率 – Ben 2012-07-16 18:06:30

+0

它不應該成爲問題,因爲它位於存儲庫中http://mvnrepository.com/artifact/commons-codec/commons-codec無論如何,嘗試與以前的版本:1.6 – jddsantaella 2012-07-16 18:09:01

+0

與1.6嘗試,沒有區別,悲傷。也就是說,我以前試過,仍然得到NoSuchMethod – Ben 2012-07-16 18:09:50

相關問題