Web Services 最佳做法:WebLogic SOAP服务--WSDL是否应该可见?

eqzww0vc  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(188)

我将在WebLogic服务器上部署SOAP Web服务。
服务的终结点类似于:

http://myserver.mycompany.com:1234/MyService-0.0.1-SNAPSHOT/MyServiceService

但是,如果(使用浏览器)导航到

http://myserver.mycompany.com:1234/MyService-0.0.1-SNAPSHOT/MyServiceService?WSDL
-- or --
http://myserver.mycompany.com:1234/MyService-0.0.1-SNAPSHOT/MyServiceService?xsd=1

我可以分别看到服务的WSDL或模式文件。
我的团队并没有部署很多Web服务(我们是一个后台团队,使用Oracle中间件来自动化我们提供的少量服务),因此出现了一个问题,即公开WSDL文件和模式文件是否是“最佳实践”。
这些文件是可见的吗?或者应该以某种方式关闭对它们的访问吗?相反,是否可以限制对它们的访问?或者这会干扰客户端访问服务吗?

vyu0f0g1

vyu0f0g11#

这是一个老问题,但不管怎样。这取决于,但在我的项目中,这样做被认为是一个坏的做法。你应该总是首先做合同,不要基于你的代码,否则很可能你会结束一个WSDL,在某种程度上依赖于用于实现的编程语言。
我不知道Weblogic是如何工作的,但是我记得Jboss(5)曾经以任何方式从代码中生成WSDL并提供服务。即使是在我们首先开发Contract(WSDL)的时候。所以你会在这些WSDL中得到一些可能导致问题的小差异。WSDL和XML Schema文件的交换应该通过其他方式完成。可以限制对Weblogic上任何URI的访问。
另一个方面是,如果您不删除这些端点,我们发现客户端的开发人员会开始将他们的开发工具和实现指向这些端点以获取WSDL。(大量)不必要的下载这些文件。(需要)在每次示例化客户端代码时读取WSDL。通过不提供这些端点,您可以使客户端避免这些不良实践。

相关问题