这是问题, 我有这个项目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