2012-05-07 100 views
-1

我在Tomcat中部署WAR文件。另外我有一個JAR文件。將JAR添加到WAR的類路徑而不更改WAR文件

是否有可能使WAR文件中的服務可用於JAR文件中的類,而無需更改WAR文件,還是將其添加到WAR的WEB-INF/lib中?

我試過將JAR添加到lib/,但它不起作用。 Spring在啓動時失敗,出現org.springframework.beans.factory.BeanCreationException»java.lang.NoClassDefFoundError。

編輯

我意識到,我可能會自己做了一個無法解決的和醜陋的architectually問題。事情是這樣的:

  • 戰爭已經參考<bean id="warService" class="com.war.Service" />
  • 我的JAR具有延伸com.war.Service類com.mystuff.MyService
  • 我更換了<bean id="warService" class="com.mystuff.MyService" />
  • 豆參考春季失敗java.lang.NoClassDefFoundError:com.war.Service

回答

1

或者你可以把它(JAR文件)在你的Tomcat的根目錄lib文件夾下。 CHK了這一點:

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

根據您的編輯

  1. 東西是不對您的罐子
  2. 你已經在你的應用程序上下文誤認爲完全合格的類名

我碰巧有mysql-connector-java-5.0.8-bin罐子在我的lib文件夾。而只是爲了測試我把這個在我的應用程序上下文:

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

曾任魅力,檢查上面

+0

我試着將它添加到lib /中,但它不起作用。 Spring在啓動時失敗,出現org.springframework.beans.factory.BeanCreationException»java.lang.NoClassDefFoundError。 – neu242

+1

@ neu242我更新了這個問題,如果仍然不能正常工作,能否顯示更多代碼 – ant

+0

當我將它放入WAR中的WEB-INF/lib /目錄時,jar文件效果很好。我會看看我能否提供一個更好的例子,但知道它應該工作是很好的。 – neu242

0

這兩種情況下,你可以使用Tomcat的lib目錄,但所有jar添加存在於所有被共享應用程序在你的服務器