2017-10-18 91 views
1

在Apache CXF的wsdl_first示例中,pom文件將wsdl文件放入WEB-INF /中。同樣,src/main/resources中的所有xml文件和wsdl文件都以WEB-INF/classes結尾,因爲它們位於src/main/resources中。爲什麼wsdl文件必須在WEB-INF(在Apache CXF中)?

我在tomcat中部署webapp。

我的問題是:當我從WEB-INF中刪除wsdl文件並從WEB-INF/classes中刪除xml文件和wsdl文件(並重新啓動Tomcat)時,webapp仍然有效。爲什麼pom文件將wsdl文件顯式放入WEB-INF?爲什麼WEB-INF/classes中的xml文件和wsdl文件?

在src/main/webapp中有web.xml和cxf-servlet.xml。他們最終在WEB-INF /中。當我刪除它們時,事情就會出錯。

回答

0

所以記住WSDL是服務接口的官方定義。換句話說,如果你想爲SOAP服務創建一個客戶端,你需要一個WSDL。您可以使用此WSDL爲客戶端生成代碼工件。它與從WSDL生成服務器幾乎完全相似。

現在WEB-INF文件夾已發佈,並且WSDL在其中時也會發布。這將允許客戶端訪問WSDL。但是,服務運行不需要WSDL。因此我們可以刪除WSDL。

當您通過公共瀏覽保護服務時,通常會刪除WSDL。這將消除任何人只要掌握服務定義的能力。

記住WSDL只是用來產生各種語言如Java,淨等

但是它並不需要一個SOAP服務器或客戶端運行的文物定義。僅用於代碼生成。