jax-ws使用

来源:互联网 发布:2017好玩的网游 知乎 编辑:程序博客网 时间:2024/05/21 19:28

jax-ws百度说明:

JAX-WS规范是一组XML web services的JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。
在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP,在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代码。JAX-WS的运行时实现会将这些API的调用转换成为对应的SOAP消息。
在服务器端,用户只需要通过Java语言定义远程调用所需要实现的接口SEI(service endpoint interface),并提供相关的实现,通过调用JAX-WS的服务发布接口就可以将其发布为WebService接口。
在客户端,用户可以通过JAX-WS的API创建一个代理(用本地对象来替代远程的服务)来实现对于远程服务器端的调用。

实例

创建服务接口

package com.activemq;import javax.jws.WebMethod;  import javax.jws.WebParam;  import javax.jws.WebService;  /**  * 服务端接口  *  */  @WebService  public interface HelloWorld {      /**      * 启动相关的服务方法      * @param name      * @return      */      @WebMethod      String sayHi(@WebParam(name = "name") String name);  }

创建接口实现类

package com.activemq;import javax.jws.WebService;/**  * 服务端实现  *  */  @WebService(endpointInterface ="com.activemq.HelloWorld")  public class HelloWorldImpl implements HelloWorld {      public String sayHi(String name) {          return "Hello " + name;      }  }

服务端发布

package com.activemq;import javax.xml.ws.Endpoint;  public class JaxwsServer {            public static void main(String args[]) throws Exception {      //发布webservice    Endpoint.publish("http://localhost:8080/jaxws/services/HelloWorld", new HelloWorldImpl());      }  }

打开http://localhost:8080/jaxws/services/HelloWorld

打开http://localhost:8080/jaxws/services/HelloWorld?wsdl

发布成功

客户端调用

package com.activemq;import java.net.URL;import javax.xml.namespace.QName;import javax.xml.ws.Service;public final class JaxwsClient {            public static void main(String[] args) throws Exception {          URL url = new URL("http://localhost:8080/jaxws/services/HelloWorld?wsdl");          // 第一个参数是服务的URI          // 第二个参数是在WSDL发布的服务名          QName qname = new QName("http://activemq.com/", "HelloWorldImplService");          // 创建服务          Service service = Service.create(url, qname);          // 提取端点接口,服务“端口”。          HelloWorld client = service.getPort(HelloWorld.class);          System.out.println(client.sayHi("HI"));      }      }

结果打印

Hello HI


0 0
原创粉丝点击