首页 > 代码库 > 10_Jaxws使用自定义pojo发布服务
10_Jaxws使用自定义pojo发布服务
【简述】
查询三天的天气信息(天气概况、日期、温度),测试jaxws是否支持自定义pojo发布服务。
【开发过程】
服务端:
1.自定义pojo(天气概况、日期、温度)
2.开发SEI接口及实现类
3.发布服务
客户端:(采用service类标准方法调用webService)
1.根据wsdl说明书生成客户端调用代码。
2.将生成代码拷贝到工程中,编写客户端类。
【服务端工程截图】
【WeatherModel.java】
package com.Higgin.ws.pojo;import java.util.Date;public class WeatherModel { //天气概况 private String detail; //日期 private Date date; //最高温度 private int temperature_max; //最低温度 private int temperature_min; //忽略get/set方法...........}
【WeatherInterface.java】
package com.Higgin.ws.service;import java.util.List;import com.Higgin.ws.pojo.WeatherModel;public interface WeatherInterface { public List<WeatherModel> queryWeatheer(String cityName);}
【WeatherInterfaceImpl.java】
package com.Higgin.ws.service;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import javax.jws.WebService;import com.Higgin.ws.pojo.WeatherModel;@WebServicepublic class WeatherInterfaceImpl implements WeatherInterface{ @Override public List<WeatherModel> queryWeatheer(String cityName) { //构造三天天气 List<WeatherModel> list =new ArrayList<WeatherModel>(); Calendar calendar=Calendar.getInstance(); int day=calendar.get(Calendar.DATE); WeatherModel weatherModel_1=new WeatherModel(); weatherModel_1.setDetail("晴天"); weatherModel_1.setDate(new Date()); weatherModel_1.setTemperature_max(10); weatherModel_1.setTemperature_min(-10); WeatherModel weatherModel_2=new WeatherModel(); weatherModel_2.setDetail("阴天"); calendar.set(Calendar.DATE, day+1); weatherModel_2.setDate(calendar.getTime()); weatherModel_2.setTemperature_max(6); weatherModel_2.setTemperature_min(-2); WeatherModel weatherModel_3=new WeatherModel(); weatherModel_3.setDetail("晴天"); calendar.set(Calendar.DATE, day+2); weatherModel_3.setDate(calendar.getTime()); weatherModel_3.setTemperature_max(30); weatherModel_3.setTemperature_min(3); list.add(weatherModel_1); list.add(weatherModel_2); list.add(weatherModel_3); return list; }}
【WeatherServer.java】
package com.Higgin.ws.service;import javax.xml.ws.Endpoint;public class WeatherServer { public static void main(String[] args) { Endpoint.publish("http://127.0.0.1:12345/weather", new WeatherInterfaceImpl()); }}
【客户端工程截图】
已经使用Wsimport生成了相应的客户端代码
【WeatherClient.java】
package com.higgin.ws.client;import java.net.MalformedURLException;import java.net.URL;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import javax.xml.namespace.QName;import javax.xml.ws.Service;import com.higgin.ws.service.WeatherInterfaceImpl;import com.higgin.ws.service.WeatherModel;public class WeatherClient { public static void main(String[] args) throws MalformedURLException { //使用说明书 URL wsdlDocumentLocation =new URL("http://127.0.0.1:12345/weather?wsdl"); QName serviceName=new QName("http://service.ws.Higgin.com/", "WeatherInterfaceImplService"); //创建服务视图 Service service=Service.create(wsdlDocumentLocation,serviceName); //创建portType对象 WeatherInterfaceImpl weatherInterfaceImpl=service.getPort(WeatherInterfaceImpl.class); //调用WeatherInterfaceImpl方法 List<WeatherModel> list=weatherInterfaceImpl.queryWeatheer("杭州"); for(WeatherModel weatherModel:list){ System.out.println(weatherModel.getDetail()); Date date=weatherModel.getDate().toGregorianCalendar().getTime(); System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date)); System.out.println(weatherModel.getTemperatureMax()); System.out.println(weatherModel.getTemperatureMin()); } } }
【运行结果】
10_Jaxws使用自定义pojo发布服务
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。