java - 发布 WebService 供公众访问

标签 java eclipse web-services tomcat jax-ws

因此,我有一些开发 Java Web 服务的经验。 问题是,我所做的就是将它们部署到本地主机。

我的问题是:

我们如何将 WebService 部署到本地主机以外的服务器?

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

如果我在本地主机上有它,除了我在我的电脑上没有其他人可以访问它,对吗?...

谢谢你的时间

最佳答案

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

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

How can we deploy a WebService to a server other than localhost?

您将希望建立一个尽可能可用的服务器环境。如果您想继续使用 Apache Tomcat,您可以注册各种托管 Apache Tomcat 应用程序的服务提供商 - 此处 are many他们根据预配置虚拟服务器的数量和大小(CPU、内存、磁盘空间和/或应用程序的每月数据传输)提供分层定价。您甚至可以注册云服务提供商,例如 Google Cloud , Amazon Web Services , 或 Microsoft Azure .所有这些都提供了构建、配置和管理虚拟服务器的工具,然后您可以在其中部署 Tomcat 和 Web 服务应用程序。这是一个 detailed tutorial在 Azure 上设置 Tomcat 虚拟服务器。然后,您需要管理这些服务器,观察它们以了解它们的利用率(顺便说一句,这将影响它们每月的成本)。

如果服务器管理不是您想要的 - 您还可以探索“无服务器”选项,例如 Google AppEngineAWS Elastic Beanstalk .在这个模型中,您只需上传 WAR 文件,托管服务会管理诸如需要多少台服务器来处理全局用户发出的所有应用程序 SOAP 请求之类的事情。您需要阅读每个规范,因为从技术上讲,您并没有提供 Tomcat 本身——在 Google 的示例中,您实际上是在他们自己的专有容器中运行,因此您的应用可能需要根据其功能进行一些更改。

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

How can i search the web and find the WSDL description for my WebService so that i, or anybody else around the world, can call its services?

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

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

更有趣的是,您可以通过 API Management 将 Web 服务视为产品系统。在高层次上,这是通过在其服务器上隐藏您的 Web 服务的真实 URL 来实现的,而是将客户引导到一个供开发人员使用的小型网站,您可以在其中记录、营销、促进发现您的服务以及提供注册使用它(这样您就可以跟踪和管理世界各地谁在使用您的网络服务)。然后,客户端通过所谓的 API 网关后面的单独 URL 使用 Web 服务。您可以对访问收费或免费提供,但限制客户可以发出的并发请求的数量——毕竟,您可能需要向托管服务提供商付费才能使用。部分云服务商Amazon , Azure ,独立的 API 管理供应商,例如 Apigee , Mashery , 和 many others .

关于java - 发布 WebService 供公众访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039400/

相关文章:

java - 在 Java 中不使用 split 方法将字符串标记为字符串数组

java - Maven:将依赖项的版本指定为单个模块项目的属性的好处

android - keystore Eclipse ADT 文件位置

java.lang.NoClassDefFoundError : com/googlecode/objectify/ObjectifyService

c# - WCF Web 服务方法名称

asp.net-mvc - Update Service Reference 坚持将 Soap12 添加到 Config 中。

web-services - Yelp 如何创建 "Review Highlights"部分?

java - @GenerateValue 可以与非主键属性一起使用吗?

java.lang.RuntimeException : takePicture failed

eclipse - EL 内容支持 Eclipse Indigo 3.7?