我在Tomcat中部署WAR文件 . 另外我有一个JAR文件 .
是否可以在不更改WAR文件的情况下使JAR文件中的类可用于WAR文件中的服务,或者是否已将其添加到WAR的WEB-INF / lib中?
我已经尝试将JAR添加到 lib/
,但它不起作用 . 启动时,Spring失败并出现org.springframework.beans.factory.BeanCreationException»java.lang.NoClassDefFoundError .
EDIT
我意识到我可能会让自己成为一个无法解决的,在架构上难以解决的问题 . 这是事情:
-
WAR有一个参考
<bean id="warService" class="com.war.Service" />
-
我的JAR有一个扩展com.war.Service的类com.mystuff.MyService
-
我用
<bean id="warService" class="com.mystuff.MyService" />
替换了bean引用 -
Spring因java.lang.NoClassDefFoundError:com.war.Service而失败
3 回答
或者您可以将它(您的jar文件)放在
lib
文件夹下的Tomcat根目录中 . Chk this out:http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html
Per your edit
你的 jar 有问题
您在应用程序上下文中误认为完全限定的类名
我的
lib
文件夹中碰巧有mysql-connector-java-5.0.8-bin
jar . 只是为了测试我把它放在我的应用程序上下文中:作为魅力,检查上面这两个案例
您可以使用tomcat的lib目录,但是已经为您服务器中的所有应用程序共享了所有添加的jar .
虽然不推荐,但您可以在此方案中使用Tomcat“Common”类加载器 .
http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html