jax-ws使用
发布时间:2020-12-17 00:54:15 所属栏目:安全 来源:网络整理
导读:jax-ws百度说明: JAX-WS规范是一组XML web services的 JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。 在 JAX-WS中,一个 远程调用可以转换为一个基于XML的协议例如SOAP,在使用JAX-WS过程中,开发者不需
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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |