這是問題, 我有這個項目X使用另一個項目Y的服務。 Y使用eclipse作爲jar文件導出並添加到項目X構建路徑中。那麼碰巧在X中彈簧加載「classService」的類無法加載,因爲在Y的StringEncryptorService中的remoteService的構造函數中初始化依賴性時出錯。它在Y中的一個jar文件中提到了類的一些問題。沒有編譯錯誤,所以構建路徑很好。感謝未來。任何答案將不勝感激類路徑問題:NoClassDefException:
INFO: Initializing Spring root WebApplicationContext
ERROR org.springframework.web.context.ContextLoader:319 - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'classService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.package.common.security.StringEncryptorService com.package.service.classService.stringEncryptorService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'stringEncryptorService' defined in URL [jar:file:/C:/Users/user/git/project/Project/WEB-INF/lib/package-common-0.111.jar!/com/package/common/security/StringEncryptorService.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.package.common.security.StringEncryptorService]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
我用commons-codec-1.8這是在Y項目。我知道我可以將它的jar文件移動到Project X的引用庫中,但是我想知道是否可以在Y中生成它,以便當我製作其他項目時,比如說A,我可以將y作爲jar導出到A.
編輯:我認爲問題在於春天找不到通用編解碼器。因爲它位於Y項目的庫中,所以我導出到Project X的項目可以做些什麼,以便Project X中的spring可以掃描Project Y的庫?或者專門用於common-codec.jar庫。糾正我,如果我錯了,如果我說錯了。
答案:通過將jar複製到它或將它作爲外部jar添加到項目中或將項目添加到Eclipse中的classpath中,將庫顯式添加到X的classpath中。因爲我不想讓庫共codec.jar要始終項目Ÿ庫,我們只是加入到項目X的應用程序的context.xml:
<bean id="StringEncryptorService" class="PackagePathInProjectY.StringEncryptorService"></bean>
特別鳴謝:哈什·庫馬爾。感謝好友..
它很高興知道哪種語言。這是我知道的一個java,但我想知道是否有人應該標記它。我通常會爲我自己的問題(作爲二級/三級標籤)做但不確定最佳做法。 – basarat
對不起.. mybad ..我是新來的.. :) – Vik2r