在云上部署Web服务

时间:2012-09-17 18:21:49

标签: java web-services jax-ws amazon

开发了一个Web服务,下面是步骤

1)创建Web服务端点接口..

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)
public interface HelloWorld{

    @WebMethod String getHelloWorldAsString(String name);

}

2。创建Web服务端点实现..

import javax.jws.WebService;

//Service Implementation
@WebService(endpointInterface = "com.abc.ws.HelloWorld")
public class HelloWorldImpl implements HelloWorld{

    @Override
    public String getHelloWorldAsString(String name) {
        return "Hello World JAX-WS " + name;
    }

}
  1. 创建一个Endpoint Publisher ...
  2. import javax.xml.ws.Endpoint; import com.abc.ws.HelloWorldImpl;

    //Endpoint publisher
    public class HelloWorldPublisher{
    
        public static void main(String[] args) {
           Endpoint.publish("http://localhost:9999/ws/hello", new HelloWorldImpl());
        }
    
    }
    

    现在,我还通过此URL“http:// localhost:9999 / ws / hello?wsdl”访问生成的WSDL(Web服务定义语言)文档来测试已部署的Web服务。

    但是我的疑问是,当我刚接触云世界时,我希望将我的web服务部署到云端,就​​像亚马逊一样,如果我向世界上的任何人提供wsdl,他可以通过他的浏览器访问我的wsdl作为我的网络服务部署在云端。

    请告诉我如何实现这个目标.. !!

1 个答案:

答案 0 :(得分:0)

当您将应用程序部署到云上的真实服务器时,此方法无效,因为您无法执行main方法来发布Web服务。

当您的应用程序在服务器上启动时,您需要配置一些内容来发布您的Web服务。

例如,使用Spring,要在Tomcat上运行SOAP Web服务,您需要注入WS bean并使用SimpleJaxWsServiceExporter bean来发布它,这些配置在application-context.xml上实现或等效

在您的情况下,请查看此link,它是如何使用JAX-WS RI分发发布WSDL Web服务的示例。

对于测试,您可以将WAR应用程序部署到Openshift

希望它有所帮助, 最诚挚的问候。