webservice java项目记录笔记

一,目标:通过JDK来发布webservice服务

1,创建接口
2,创建实现类+@webservice
3,发布服务

webservice java项目记录笔记_第1张图片

 

 

 IWeatherService.java

public interface IWeatherService {

    public String Query(String cityName);
    
    public String queryother(String cityname);
}

WeatherServiceImpl.java

import javax.jws.WebService;

@WebService
public class WeatherServiceImpl implements IWeatherService {

    @Override
    public String Query(String cityName) {
        System.out.println("查询!"+cityName);
        return "121212";
    }

    @Override
    public String queryother(String cityname) {
        // TODO Auto-generated method stub
        return "1212"+cityname;
    }

}

发布:

public class Main {

    public static void main(String[] args) {
        Endpoint.publish("http://localhost:8080/weatherservice", new WeatherServiceImpl());
        System.out.println("发布成功!");

    }

}

浏览器输入:

http://localhost:8080/weatherservice?wsdl

服务说明书

接口名:WeatherServiceImplService

webservice java项目记录笔记_第2张图片

 

 

 portType  下面的  类名:WeatherServiceImpl

两个方法:Query和queryother

二,目标:通过编程来访问服务

1,生成客户端代码
命令:wsimport
通过cmd进入当前项目的src路径下,
输入命令,
wsimport -s . http://localhost:8080/weatherservice?wsdl

webservice java项目记录笔记_第3张图片

 

进入命令行cmd

进入到当前client端项目的src下面

输入:wsimport -s . http://localhost:8080/weatherservice?wsdl

webservice java项目记录笔记_第4张图片

 

 

 回到eclipse,创建的client 刷新一下项目

webservice java项目记录笔记_第5张图片

 

 

 调用webservice

main.java

import com.huk.webservice.WeatherServiceImpl;
import com.huk.webservice.WeatherServiceImplService;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //1,创建服务视图
        WeatherServiceImplService webservice = new WeatherServiceImplService();
        //2,获取服务实现类
        WeatherServiceImpl port = webservice.getPort(WeatherServiceImpl.class);
        //3,调用实现方法
        String query = port.query("江西");
        System.out.println(query);
        
        String queryother = port.queryother("南昌!");
        System.out.println(queryother);
    }

}

三,目标:webservice 服务更新了,怎么办
需要从新生成client代码
先将之前的删除,在用cmd重新生成
利用命令 wsimport -s . http://localhost:8080/weatherservice?wsdl


四,目标:解析网络的wsdl报错

无法将's:schema' 解析为'element declaration'组件
根据网络公共的webservice来生成客户端代码

怎么办?
将wsdl文档保存到本地 保存后缀名为.wsdl
在将

改为

再次用
wsimport -s . 文件地址

你可能感兴趣的:(webservice java项目记录笔记)