目录:
- 概述
- 实验环境
- 服务端的实现
- 客户端的实现
[一]、概述
Java API for XML Web Services (JAX-WS)是Java程序设计语言一个用来创建Web服务的API。
在服务器端,用户只需要通过Java语言定义远程调用所需要实现的接口SEI(service endpoint interface),并提供相关的实现,通过调用JAX-WS的服务发布接口就可以将其发布为WebService接口。
在客户端,用户可以通过JAX-WS的API创建一个代理(用本地对象来替代远程的服务)来实现对于远程服务器端的调用。
当然 JAX-WS 也提供了一组针对底层消息进行操作的API调用,你可以通过Dispatch 直接使用SOAP消息或XML消息发送请求或者使用Provider处理SOAP或XML消息。
JAX-WS2.0 (JSR 224 )是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层,使用的是the Java Architecture for XML Binding (JAXB, JSR 222 ),在parsing层,使用的是the Streaming API for XML (StAX, JSR 173 ),同时它还完全支持schema规范。
JAX-WS与JAX-RPC的区别 可参见:http://java.sun.com/xml/faq.html#JAX-WS-and-JAX-RPC-difference
JAX-WS一些参考资料:
[二]、实验环境
- java version “1.6.0_18″、Eclipse3.7
- maven构建项目:mvn archetype:create -DgroupId=com.micmiu.jaxws.demo -DartifactId=jaxws-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
[三]、服务端的实现
1.最基本的实例
编写接口代码:ReportService.java
package com.jshx.http.ws; public interface ReportService { String queryDate(String jsonStr); }
实现接口并添加webservice注释:ReportServiceImpl.java
package com.jshx.http.ws.impl; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import com.jshx.http.ws.ReportService; @WebService @SOAPBinding(style = SOAPBinding.Style.RPC) public class ReportServiceImpl implements ReportService { @WebMethod public String queryDate(@WebParam(name="jsonStr") String jsonStr) { return "hi," + jsonStr + " welcom to www.micmiu.com"; } }
编写服务端发布代码:WsServerStart .java
package com.jshx.http.ws; import javax.xml.ws.Endpoint; import com.jshx.http.ws.impl.ReportServiceImpl; public class WsServerStart { public static void main(String[] args) { ReportService ws = new ReportServiceImpl(); Endpoint.publish("http://localhost:8080/ReportServer", ws); } }
浏览器打开:http://localhost:8080/ReportServer?wsdl 回车显示如下:
可见服务端已经发布成功。
如果出现问题:
原因:cxf需要jaxws-api-2.1.jar及jaxb-api-2.1.jar的支持
解决方案
1、将cxf所需的2.1的jar复制一份到jdk目录下的jre\lib\endorsed文件夹中。如果endorsed文件不存在,可新建。如果不行,可能还需要在public class XXX上方加入@SOAPBinding(style = SOAPBinding.Style.RPC)。
2、jdk升级到1.6.0_22版本以上。
二、MyEclipse利用网上公开发布WSDL文件,创建WebService Client,进行调用WebService
1. 打开MyEclipse,新建一个Web Project;然后新建 一个package,取名为com.test;
2. 然后再New一个Web Service Client;
点next ,然后录入 WSDL URL: http://localhost:8080/ReportServer?wsdl
点next,点finish;ok了,系统会自动帮忙生成很多代码。
2.编写客户端测试程序:ReportClient.java
package com.jshx.http.ws.client; public class ReportClient { public static void main(String[] args) { ReportServiceImplService service = new ReportServiceImplService(); ReportServiceImpl report = service.getReportServiceImplPort(); System.out.println("start webservice client ..."); System.out.println("send Michael to server "); System.out.println(report.queryDate("Michael")); System.out.println("test client end."); } }
运行测试程序,日志如下:
send Michael to server
hi,Michael welcom to www.micmiu.com
test client end.
可见客户端调用成功。
另一种方法:
package com.wx.jaxws.example; //import javax.jws.WebMethod; //import javax.jws.WebService; //import javax.jws.soap.SOAPBinding; //@WebService(serviceName = "HelloService", portName = "HelloServicePort", targetNamespace = "http://example.jaxws.wx/jaxws/MyFirstOne") //@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) public class MyFirstOne { //@WebMethod public String sayHello(String s) { System.out.println("hello," + s); return "hello," + s; } }
相关推荐
MyEclipse6_5上基于JAX-WS开发Webservice(中文示例)
MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht
JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用
基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...
myeclipse6.5上基于JAX-WS开发Webservice(中文示例).doc
MyEclipse基于JAX-WS开发Webservice+WebserviceClient客户端调用.zip
公司代码实现,简单的webservice服务 发布,实现客户端的调用。
欢迎下载JAX-WS实现WebService.zip。本压缩文件介绍了如何使用JAX-WS技术实现WebService 参考博客:http://blog.csdn.net/gaohuanjie/article/details/50523517
MyEclipse6.5基于JAX-WS开发Webservice
使用JAX-WS开发WebService入门教程.pdf
JAX-WS发布webservice例子,基于http://blog.csdn.net/yy_love_my/article/details/44938329所说的做的一个简单且能运行的列子,基于maven工程,如果使用servlet发布方式,执行命令:mvn tomcat7:run
MyEclipse6.5上基于JAX-WS开发Webservice(中文示例) 及web service explorer不能显示的问题
jax-ws-webservice开发 通过myeclipse进行 jax-ws的开发及其客户的编写
以jdk1.6以上自带的jax-ws来发布webservice,压缩包里包含服务端和客户端,下载导入即可启动运行测试,有疑问的话欢迎咨询哈
利用myeclipse创建的 jax-ws demo
基于JAX-WS实现的WebService服务 资源包含的文件如下: 1、JAX-WS实现WebService文档 2、WebService服务端实现源码 3、WebService客户端实现源码
NULL 博文链接:https://liuyunlong1229.iteye.com/blog/1678559
jax-ws webservice完整demo,包含所有jax-ws 2.2jar包。
如果基于一个JAX-WS进行WebService开发,有很多教程,但是具体怎么更自动地生成一些文件,实现客户端与服务端的交互,都讲得不大清楚,为了让大家更方便地部署,我将服务端、客户端文件的生成与部署全过程以及测试...