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;

@WebService
public 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());
        }

    }

}

【运行结果】

时间: 2024-10-19 03:54:45

10_Jaxws使用自定义pojo发布服务的相关文章

自定义及发布一个webservice服务

自定义及发布一个webservice服务    - 声明 某个业务服务为webservice服务       通过@webservice 注解来声明    - 发布webservice服务       Endpoint.publish()发布 (默认对public修饰的方法进行发布)    - 通过wsimport生成本地代理来访问自己发布的webservice       wsimport 1.发布自定义webservice phone.java package ws.myWebService

Axis1.4之即时发布服务

下载axis1.4开发包,解压开发包,将webapps目录下的axis文件夹拷贝到tomcat的webapps目录下.启动tomcat,在浏览器输入http://localhost:8080/axis得到如下页面: 实用axis的发布服务平台,创建和发布WebService服务有两种方式:即时发布和定制发布.即时发布服务很少用,但是为了知识体系的完整性,这里还是讲一下.本篇文章只讲即时发布服务. 写一个没有包的Java类HelloWS.java: public class HelloWS{ pu

ArcGIS Server发布服务,打包成功,发布失败

打包成功,发布失败 部分解决方案: ①   查看Server对于源数据所在文件夹是否有读写权限,若无赋予Server账户至少读写权限.读写权限的赋予:对应存放数据的文件夹上右键→属性→ 安全 赋予arcgis server account(如果安装时没有改名字, 默认名字为arcgis)读写权限,如果列表中没有该账户,点 编辑→ 添加→ 输入对象名称→ 检查名称 ②   在arcmap里新建一个空白的mxd,添加一个本地的数据,如存放在本地的shapefile或file gdb里的要素类,然后发

WIN 10 IIS 服务或万维网发布服务,或者依赖这两种服务的某个服务未能启动。该服务或所依赖的服务可能在启动期间发生错误或者已禁用。

环境:win10 企业版 今天重启iis的时候报出了下面的错误: 即:IIS 服务或万维网发布服务,或者依赖这两种服务的某个服务未能启动.该服务或所依赖的服务可能在启动期间发生错误或者已禁用.在网络上搜索解决方案,比如: 即:点击打开链接 这三个服务我也禁止了: 上面的方案我在win7下操作成功了(之前win7下也遇到过这个问题),但在win 10下没有效果. 于是查看系统日志: 具体信息如下:日志名称:          System来源:            Service Control

使用thrift实现订阅服务和发布服务

使用thrift实现订阅服务和发布服务 服务:订阅服务 market_subscriber 和 发布服务 market_publisher功能:market_subscriber 能够向 market_publisher 请求订阅某些类型的消息,当 market_publisher 有该类型的消息时,需要把它推送给订阅服务.流程:1. market_publisher 服务启动,监听端口,注册事件处理函数,处理订阅请求消息.         2. market_subscriber 服务启动,监

微信自定义菜单发布出现 “invalid charset. please check your request, if include \\uxxxx will create fail!”的问题

出现这个这个问题是因为发布菜单的JSON字符串中存在Unicode字符 我的项目中是因为Serialize序列化时自动将Url中的“&”自动转换成Unicode 解决方法就是将json串中的unicode字符解码 如何进行unicode解码,传送门 微信自定义菜单发布出现 "invalid charset. please check your request, if include \\uxxxx will create fail!"的问题

万维网发布服务(W3SVC)已经停止。

今天朋友不小心打开了PHPstudy,导致IIS搭建的网站全部无法启动,提示"万维网发布服务(W3SVC)已经停止.除非万维网发布服务(W3SVC)正在运行,否则无法启动网站.问题解决方法" 环境:win2008系统 这个错误,无法启动iis,于是找了一下原因,这个服务的开始就在IIS上面,不用去到服务里面去找.

ArcGIS发布服务时缓存切片设置

[文件]>[共享]>[服务]>[覆盖原有服务]或[创建新服务] 设置好相关参数后,会弹出"服务编辑框": 进入"缓存" 1."绘制此地图服务"中选择"使用缓存中的切片"(此处选择"使用缓存中的切片"才能在左侧子菜单中"缓存"出现子选项"高级设置"): 2.缓存设置 "切片方案"选择默认的"ArcGIS Online/Bi

ArcGIS Server开发教程系列(2)配置ARCMAP和ARCCatalog发布服务

1.       Arc catalog的配置 打开catalog,如图新增刚刚创建的server 1. Use GIS services: 用户身份连接 使用此种连接,可以浏览.使用站点内发布的所有服务.但是,不能编辑服务器属性.发布服务.编辑服务属性或者添加.删除.启动.停止或暂停服务. 2. Pulish GIS services: 发布身份连接 使用此种连接,可以发布GIS服务,也可以配置和发布草案服务,但是不能编辑站点的任何属性. 3. Administrator GIS servic