- JAX-WS概述;
- 通过Main发布一个简单WebService;
JAX-WS(Java API for XML Web Services)规范是一组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创建一个代理(用本地对象来替代远程的服务)来实现对于远程服务器端的调用。当然 JAX-WS 也提供了一组针对底层消息进行操作的API调用,你可以通过Dispatch 直接使用SOAP消息或XML消息发送请求或者使用Provider处理SOAP或XML消息。通过web service所提供的互操作环境,我们可以用JAX-WS轻松实现JAVA平台与其他编程环境(.net等)的互操作。
使用JWS通过Main方法发布一个简单WebService:
package com.ycdhz.web; import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; @WebService(name = "HelloWS", targetNamespace = "http://www.tmp.com/ws/hello") @SOAPBinding(style = Style.RPC) public interface HelloWService { public int sendMT(@WebParam(name = "User_ID") String User_ID, @WebParam(name = "Message") String Message, @WebParam(name = "Service_ID") String Service_ID); }
package com.ycdhz.web; import javax.jws.WebService; @WebService(endpointInterface = "com.ycdhz.web.HelloWService", portName = "HelloWSPort", serviceName = "HelloWSService", targetNamespace = "http://www.tmp.com/ws/hello") public class HelloWServiceImpl implements HelloWService { public int sendMT(String User_ID, String Message, String Service_ID) { System.out.print(Service_ID+": "+User_ID+": "+Message); return 0; } }
package com.ycdhz.web; import javax.xml.ws.Endpoint; public class HelloWSTest { public static void main(String[] args) { HelloWService helloWS = new HelloWServiceImpl(); String address = "http://localhost:8080/HelloWS"; Endpoint.publish(address, helloWS); } }
在浏览器中通过http://localhost:8080/HelloWS可以成功访问这个web服务!