发布WebService以进行公共访问

时间:2016-05-04 22:50:38

标签: java eclipse web-services tomcat jax-ws

所以,我有一些开发Java WebServices的经验。 问题是,我所做的只是将它们部署到localhost。

我的问题是:

我们如何将WebService部署到localhost以外的服务器?

我如何搜索网页并找到我的WebService的WSDL描述,以便我或世界上任何其他人可以调用其服务?

如果我在localhost中拥有它,除了我在计算机上的其他任何人都可以接受它吗?...

感谢您的时间

1 个答案:

答案 0 :(得分:1)

我认为您不希望出于各种原因让您的开发环境中的应用程序可供全球任何其他人访问。本地网络上的其他人可以通过其网络主机名访问您的本地主机,但这不是全世界的用户。

让我们分别讨论你的两个问题:

  

我们如何将WebService部署到localhost以外的服务器?

您需要尽可能多地建立可用的服务器环境。如果您想继续使用Apache Tomcat,您可以注册托管Apache Tomcat应用程序的各种服务提供商 - are many根据预配置虚拟服务器的数量和大小提供分层定价(CPU,内存) ,磁盘空间和/或应用程序的每月数据传输)。您甚至可以使用Google CloudAmazon Web ServicesMicrosoft Azure等云服务提供商进行注册。所有这些都提供了构建,配置和管理虚拟服务器的工具,然后您可以将Tomcat和Web服务应用程序部署到这些服务器中。这是在Azure上设置Tomcat虚拟服务器的detailed tutorial。然后,您需要管理这些服务器,观察它们以查看它们的使用量(顺便说一下,这将影响它们每月花费的成本)。

如果服务器管理不是您想要的 - 您还可以探索“无服务器”选项,例如Google AppEngineAWS Elastic Beanstalk。在此模型中,您只需上传WAR文件,托管服务就可以管理需要多少台服务器来处理全球用户正在进行的所有应用程序SOAP请求。您需要阅读每个规格,因为您在技术上并不提供Tomcat本身 - 在Google的示例中,您实际上是在自己的专有容器中运行,因此您的应用可能需要进行一些更改,具体取决于它的作用。 / p>

根据您选择的托管服务或云服务提供商,您的“如何部署”步骤会有很大差异。从好的方面来说,所有提供tutorials关于如何将应用程序专门部署到其中“their way.

  

我如何搜索网页并找到我的WebService的WSDL描述,以便我或世界上任何其他人可以调用其服务?

一旦您确定了托管或云服务提供商并部署了您的应用程序,您就会有一个URL来访问它,但您需要努力解决问题。 (SOAP)web service discovery有一些开放的规范,但很可能不是你真正想要的。您还可以将WSDL URL提交到在线API目录,例如ProgrammableWebPublic APIs

自己动手的最简单方法是运行一个链接到WSDL的网站,然后使用search engine optimization技术在搜索引擎上列出网站并制作它(以及它链接到的WSDL) )与网络搜索相关。

获得更高级,您可以通过API Management系统将您的网络服务视为产品。从较高的层面来说,这可以通过将真实的URL隐藏到其服务器上的Web服务来实现,而是将客户端引导到一个小型网站,供开发人员记录,营销,促进服务发现以及提供注册。使用它(这样您就可以跟踪和管理世界各地的人使用您的Web服务)。然后,客户端通过所谓的API网关后面的单独URL来使用Web服务。您可以收取访问费用或免费提供,但限制客户端可以进行的并发请求数量 - 毕竟,您可能需要向托管服务提供商付费才能使用。一些云服务提供商AmazonAzure,独立的API管理供应商,例如ApigeeMasherymany others