首页 文章

在不更改WAR文件的情况下将JAR添加到WAR的类路径中

提问于
浏览
-1

我在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 回答

  • 0

    或者您可以将它(您的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 . 只是为了测试我把它放在我的应用程序上下文中:

    <bean id="driver" class="com.mysql.jdbc.Driver" />
    

    作为魅力,检查上面这两个案例

  • 1

    您可以使用tomcat的lib目录,但是已经为您服务器中的所有应用程序共享了所有添加的jar .

  • 0

    虽然不推荐,但您可以在此方案中使用Tomcat“Common”类加载器 .

    http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html

相关问题