JAX-WS服务器端
TemperatureInfo 实体类
package cn.entity; import java.util.Date; import javax.xml.bind.annotation.XmlRootElement; /** * 天气预报实体类 * */ @XmlRootElement(name="TemperatureInfo") public class TemperatureInfo { private String city;//城市 private Date date;//日期 private int min;//最低 private int max;//最高 private int average;//平均值 private String desc;//说明 public TemperatureInfo() { } public TemperatureInfo(String city, Date date, int min, int max, int average, String desc) { this.city = city; this.date = date; this.min = min; this.max = max; this.average = average; this.desc = desc; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public int getMin() { return min; } public void setMin(int min) { this.min = min; } public int getMax() { return max; } public void setMax(int max) { this.max = max; } public int getAverage() { return average; } public void setAverage(int average) { this.average = average; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } }
WeatherService 业务类接口与实现
package cn.biz; import java.util.Date; import java.util.List; import javax.jws.WebMethod; import javax.jws.WebService; import cn.entity.TemperatureInfo; /** * Web 服务端 * */ @WebService(targetNamespace="http://www.baidu.cn/ws/Weather") public interface WeatherService { /** * 返回3天的天气 * @param city 城市 * @param dates 哪几天 * @return 天气列表 */ @WebMethod List<TemperatureInfo> getweathers(String city,List<Date> dates); }
package cn.biz.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import javax.jws.WebMethod; import javax.jws.WebService; import cn.biz.WeatherService; import cn.entity.TemperatureInfo; @WebService(targetNamespace="http://www.baidu.cn/ws/Weather") public class WeatherServiceImpl implements WeatherService { /** * 模拟根据城市和日期获取天气信息 * */ @WebMethod public List<TemperatureInfo> getweathers(String city, List<Date> dates) { List<TemperatureInfo> list = new ArrayList<TemperatureInfo>(); for (Date date : dates) { list.add(getTemperature(city,date)); } System.out.println("服务器端的方法被成功调用..."); return list; } /** * WSDL 不要暴露出来的方法 * */ @WebMethod(exclude = true) private TemperatureInfo getTemperature(String city, Date date) { Random ran = new Random(); final String[] WEATHERS={"晴","雨","多云","雪"}; int min = ran.nextInt(); int max=0; do{max=ran.nextInt(45);}while(min>max); int average = (max+min)/2; String werther=WEATHERS[ran.nextInt(WEATHERS.length)]; //随机产生天气 return new TemperatureInfo(city, date, min, max, average, werther); } }
Server 本地服务器主程序
package cn.server; import java.sql.Timestamp; import javax.xml.ws.Endpoint; import cn.biz.WeatherService; import cn.biz.impl.WeatherServiceImpl; /** * 本地服务器主程序 * */ public class Server { /** * 构造方法 * */ protected Server() { //天气预报服务 WeatherService weatherService = new WeatherServiceImpl(); //访问地址,端口号 8084 ,查看 WSDL 文件,http://localhost:8084/WeatherService?wsdl String address = "http://localhost:8084/WeatherService"; //发布服务 Endpoint.publish(address, weatherService); } //将服务发布到本地的 jdk6 自带的 Web 容器中 public static void main(String[] args) { System.out.println(new Timestamp(System.currentTimeMillis())); new Server();//在构造函数中启动 try { Thread.sleep(30*60*1000);//分钟 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(new Timestamp(System.currentTimeMillis())); System.exit(0);//关闭服务器 } }
PS:先启动 Tomcat ,后运行控制器,最后在浏览器上输入“http://localhost:8084/WeatherService?wsdl”
找到了“C:\Program Files (x86)\Java\jdk1.7.0_45\bin”下的 “wsimport.exe”
在同级文件夹下创建 demo 包,用来存在Java包
开始进行 cmd
获取的 Java包 如图
JAX-WS客户端
TemperatureInfo 修改 “protected Date date;//修改类型,包括 get 和 set 的方法" 和覆写 toString 方法
Client 客户端代码
package cn.baidu.Client; import java.net.URL; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.xml.namespace.QName; import javax.xml.ws.Service; import cn.baidu.ws.weather.TemperatureInfo; import cn.baidu.ws.weather.WeatherServiceImpl; /** * 客户端代码 * */ public class Client { //可以在 WeatherServiceImplService.java 中找 public static void main(String[] args) throws Exception { //创建 2 个后面要用到的 2 个 QName //1.根据服务地址创建 URL 对象 URL wsdlDocumentLocation = new URL("http://localhost:8084/WeatherService?wsdl"); QName serviceName = new QName("http://www.baidu.cn/ws/Weather","WeatherServiceImplService"); //2.根据 URL 对象和服务名称创建 Service 类 Service service = Service.create(wsdlDocumentLocation,serviceName); //3.获取服务接口 QName portName = new QName("http://www.baidu.cn/ws/Weather","WeatherServiceImplPort"); WeatherServiceImpl port = service.getPort(portName,WeatherServiceImpl.class); //准备参数 List<Date> dates = new ArrayList<Date>(); dates.add(java.sql.Date.valueOf("2014-10-16")); dates.add(java.sql.Date.valueOf("2014-10-17")); dates.add(java.sql.Date.valueOf("2014-10-18")); List<TemperatureInfo> obj = port.getweathers("广州", dates); for (TemperatureInfo temperatureInfo : obj) { //产生 toString 方法 System.out.println(temperatureInfo); } } }
效果图:
相关推荐
基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...
NULL 博文链接:https://qiaolevip.iteye.com/blog/2098981
JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...
JAX-WS自学笔记 本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java开始 2.1.1 运行wsgen 2.1.2 生成的WSDL和XSD 2.1.3 目录结构 2.2 从WSDL...
使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...
亲测可用,Jax-ws所需要的JAR包,拷贝到tomcat安装路径的lib里,实现了webservice发布到tomcat,赞!
MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht
The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs. It's a part of the ...
webService部署tomcat需要的jax-ws 的完整jar包
JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用
JAX-WS在Tomcat中发布服务实例,同时在Handler中实现简单的授权校验。
JAX-WS2.0 API
Jax-WS的简单实例 Jax-WS的简单实例
jax-ws webservice完整demo,包含所有jax-ws 2.2jar包。
javax.xml.ws.Service 报错需要的包,亲测可以用,直接下载在ide里buildpath一下就可以,四个jar包 ,整合了其他的jar所以配置简单
rar中包含整个项目的源码和数据库生成脚本,采用jax-ws发布Web Service服务,支持java客户端和.Net客户端调用,数据库采用oracle10g,里面有创建数据库脚本文件createTable_Oracle10g.sql,由于Hibernate映射表中会...
JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...
如果基于一个JAX-WS进行WebService开发,有很多教程,但是具体怎么更自动地生成一些文件,实现客户端与服务端的交互,都讲得不大清楚,为了让大家更方便地部署,我将服务端、客户端文件的生成与部署全过程以及测试...
以jdk1.6以上自带的jax-ws来发布webservice,压缩包里包含服务端和客户端,下载导入即可启动运行测试,有疑问的话欢迎咨询哈