當我在Eclipse上開發Axis2 Web服務時,我注意到Eclipse自動將Axis2的lib文件夾中的類複製到新項目的lib文件夾中。但是,並非Axis2的lib文件夾中的所有類都正在被複制。有趣的是,當通過Eclipse部署到Tomcat時,即使一些來自Axis2的jar沒有被複制,web服務也沒有任何問題。另外,當我查看Tomcat的臨時文件時,Tomcat似乎爲web服務的modules.list上列出的模塊生成了jar。Eclipse不會導入所有的Axis2 jar,但項目仍然在Tomcat上運行?
有人能告訴我關於這是怎麼回事?爲什麼Eclipse不會複製Axis2中的所有罐子?爲什麼即使沒有來自Axis2的其他罐子,Web服務也可以在Tomcat上運行?這些臨時文件是什麼?何時及爲何產生?
我試圖在WebSphere上運行同一個項目,並且由於缺少罐子而遇到ClassDefNotFound異常。當我將所有沒有被Eclipse複製的Axis2 jar複製到我的項目中時,我的問題得到了解決。但是我對我的解決方案並不滿意,因爲即使沒有這些罐子,Tomcat也可以運行我的項目。我的解決方案是否真的是最佳解決方還是我缺少配置設置?
這只是爲了澄清:
我的Web服務已經在運行的Axis2。我的類加載策略設置爲PARENT_LAST。我知道,由於WebSphere有自己的Axis2配置,因此類加載策略必須設置爲PARENT_LAST,以便WebSphere將使用項目本身的Axis2。除了設置類加載策略之外,我還做了一些讓我的Web服務在WebSphere上運行的東西。我描述了我在上面做了什麼。我的問題是爲什麼必須採取這種方法?
我已經告訴他(見http://stackoverflow.com/questions/8502240/module-is-not-valid-when-deploying-an-axis2-web-service-on-websphere),但他wouldn聽不到... – 2011-12-21 09:58:35
@AndreasVeithen:我知道WebSphere有自己的配置。當我問到你回答的問題時,我的課堂加載策略已經設置爲PARENT_LAST。這就是爲什麼我發佈我的問題,因爲即使我的類加載策略已經設置爲PARENT_LAST,我的Web服務仍然無法正常工作。無論如何,我的web服務已經在運行,你的解決方案並不是解決我的問題的方法。我在自己的問題上發佈了我的答案。也許你還沒有檢查過它。而我目前的問題不是如何解決它。 – Arci 2011-12-22 01:24:16
@Udo Held:感謝您的回覆,但我的問題不是如何解決。我已經能夠在Axis2上運行我的Web服務。我的方法在我的帖子中被指出。我的問題是爲什麼需要這種方法才能在WebSphere上運行Axis2 Web服務。這不是關於班級裝載政策。 – Arci 2011-12-22 01:26:36