为什么wsdl文件必须在WEB-INF中(在Apache CXF中)?

时间:2017-10-18 15:46:41

标签: soap cxf

在Apache CXF的wsdl_first示例中,pom文件将wsdl文件放在WEB-INF /中。此外,src / main / resources中的所有xml文件和wsdl文件都以WEB-INF / classes结尾,因为它们位于src / main / resources中。

我在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 /。当我删除它们时,事情就出错了。

1 个答案:

答案 0 :(得分:0)

所以请记住,WSDL是服务接口的官方定义。换句话说,如果要为SOAP服务创建客户端,则需要WSDL。您可以使用此WSDL为客户端生成代码工件。它几乎与从WSDL生成服务器完全相似。

现在发布了WEB-INF文件夹,当WSDL存​​在时,它也会被发布。这将允许客户端访问WSDL。但是,运行服务不需要WSDL。因此我们可以删除WSDL。

在保护服务免受公共浏览时,通常会删除WSDL。这将删除任何人只是获取服务定义的能力。

请记住,WSDL只是用于生成各种语言(如Java,.Net等)的人工制品的定义。

但是,SOAP服务器或客户端不需要运行。仅用于代码生成。