2009-07-17 108 views
2

我有一個Axis(1.4)web服務(運行在Tomcat 6.0.20上)工作正常,直到我嘗試使用另一個項目中的任何類。沒有找到Java Axis web服務項目依賴關係

我有我的web服務項目和另一個包含業務邏輯的項目。我在我的Web服務項目中將業務邏輯項目添加爲項目依賴項/引用。

package MyProject.services; 
import BusinessLogic.Core.TestClass; 

    public class MyServiceImpl implements MyProject.services.MyServiceImpl_PortType { 

    public java.lang.String getServerStatus() throws java.rmi.RemoteException { 
      //BusinessLogic.Core.TestClass core = new BusinessLogic.Core.TestClass(); 
      return "This is working fine!"; 
    } 
} 

當我調用上述方法時,一切正常。但是,如果我取消註釋getServerStatus()中的行,則會得到NoClassDefFoundException。

該代碼是當然編譯罰款,據我所見,我已經添加了所有的依賴關係。 TestClass只有一個構造函數,可以打印「Hello」並且沒有其他依賴項。

我對java web服務比較陌生,所以它可能只是我犯的一個愚蠢的錯誤。你有什麼想法?

回答

2

你說你有他們在不同的項目。如果這意味着Tomcat中的WAR-files /文件夾,那麼您的問題可能是一個Web應用程序無法直接看到任何其他Web應用程序(包括classpath)。

如果不是,請編輯您的問題,以便對您所看到的以及您的期望非常具體。

+0

我的意思是Eclipse中的不同項目。我只是添加一個項目引用,導入命名空間和使用類。當我調用服務時找不到這個類。 – Ezombort 2009-07-17 08:23:19

+1

您知道首選項 - > Java EE Module Dependencies,它控制哪些組件被部署到war文件中?另外7zip允許容易的罐子/戰爭/任何反省。我相信班級沒有部署。 – 2009-07-17 08:48:51

+0

不,我沒有意識到這一點,我只是將項目添加到首選項 - > Java構建路徑設置。非常感謝! – Ezombort 2009-07-17 08:54:32

1

你還沒有說過你是如何構建和部署的。 TestClass是否在某個jar文件中?如果是這樣,部署系統中的jar文件在哪裏,以及您的Web服務類是如何部署的?

+0

我只是在本地測試,從Eclipse運行Tomcat。 TestClass只是在工作區中的另一個項目中,並且我在Eclipse中添加了對BusinessLogic項目的引用(Jave Buil Path/Projects)。服務本身工作正常,只要我沒有在我的服務實現中使用TestClass,我就可以從我的.NET項目訪問/調用它。 – Ezombort 2009-07-17 06:56:04

+0

您需要查看Tomcat的運行方式以及TestClass的結束位置。就我個人而言,我一直傾向於從部署的角度來調試Tomcat - 即做任何生產包裝,然後運行調試器。這意味着這些問題只會成爲生產中的問題。 – 2009-07-17 07:08:47

+0

好的,我會嘗試在我的服務器上部署服務。你喜歡什麼樣的工具來進行調試? – Ezombort 2009-07-17 07:18:01

1

這不是一個回答你的問題,但你可以使用這個免費soapui

看所產生的WSDL和調用服務上的方法。 這意味着你可以無需編譯和部署存根到第二測試客戶端(你將在稍後階段做)

希望測試服務這有助於

+0

很好,謝謝。我會試試看。 – Ezombort 2009-07-17 08:21:11