通过案例学习webService

本文通过两个webService案例,详细介绍了webService的开发过程。首先讲解了使用JDK生成Server端和Client端的步骤,包括解决JDK版本问题和命令行工具的使用。接着,案例二涉及了根据schema文件生成代码,并处理了调用.NET WebService的异常。最后,文章提到了使用CXF框架创建和测试webService,并记录了在开发过程中遇到的常见错误及其解决办法。
摘要由CSDN通过智能技术生成

webService第一个案例学习

准备工作

 1.myeclipse 10.7.1

 2.jdk 1.7.0_79

1.新建Server端

  1.文件—>新建JavaProject,命名为WebServer1

  2.新建包,给包命名为top.wilma.www.day1.service

a.新建接口HelloWService

package top.wilma.www.day1.service;

import javax.jws.WebMethod;

import javax.jws.WebService;

/**

 * SEI service interface

 * @authorwilma

 * */

@WebService

publicinterface HelloWService {

    @WebMethod

  public String sayHello(String name);

}

b.新建实体类HelloWServicImpl

package top.wilma.www.day1.service.impl;

import javax.jws.WebService;

import top.wilma.www.day1.service.HelloWService;

/**

 * SEI service implements class

 * @authorwilma

 **/

@WebService

publicclass HelloWServiceImplimplements HelloWService {

    @Override

    public String sayHello(String name) {

       return name+":Hello!";

    }

}

c.新建服务端测试类

package top.wilma.www.day1.service.test;

import javax.xml.ws.Endpoint;

import top.wilma.www.day1.service.impl.HelloWServiceImpl;

 

publicclass HelloWSTest {

    /**

     * @param args

* @autho wilma

     */

    publicstaticvoid main(String[] args) {

       String address ="http://127.0.0.1:8060/WebServer1/hello";

        Endpoint.publish(address,new HelloWServiceImpl());

        System.out.println("webservice publish success!");

    }

}

刷新WebServer1

d.测试结果

右击HelloWTest类,run as ,选择Java Application

测试WebService

打开浏览器,访问地址http://127.0.0.1:8060/WebServer1/hello?wsdl

浏览器若能展示xml树形结构,则表示接口测试成功。

2.生成Client端

         新建JavaProject,命名为WebServer_client,生成的代码放置于src下

使用命令窗口生成客户端

         格式:wsimport –s–p “生成类所在包名” –keep “wsdl发布地址”。注:“wsdl发布地址”不要漏了“?wsdl”

切换到工作空间,刷新WebServer_client。在top.wilma.www.client包下新建测试类,命名为HelloWSTest


 3.最终测试   

注意事项:

1.JDK版本过低问题

         报类似如下异常:runtimemodele error:Wrapper class

解决方法:jdk版本调整为1.6或1.6以上

2.生成命令不完整

   命令路径不完整示例:

    D:\Juze\Java\demo\myeclipse\WebServer1_client\src>wsimport-p top.wilma.www.day1

 -keep http://127.0.0.1:8060/WebServer1/hello

命令完整示例

D:\Juze\Java\demo\myeclipse\WebServer1_client\src>wsimport -p top.wilma.www.day1

 -keep http://127.0.0.1:8060/WebServer1/hello?wsdl

小节:采用jdk开发webservce要点 

  1.开发服务器端
      @WebService(SEI和SEI的实现类)
      @WebService (SEI中所有方法)
    发布Web Servcie(Endpoint 终端)
  2.开发客户端
    使用eclipse提供webservcie的浏览器访问
    查看对应的wsdl文档 (一般是用浏览器访问 url?wsdl )
    请求webservice并查看请求和响应的信息(webservice 浏览器)
    创建客户端应用编码方式访问
     --借助jdk/bin wsimport.exe 工具生成客户端代码
       wsimport -keep url         //根据请求地址生成代码,url为wsdl文件的路径 url为web地址
        dos命令窗口进入要保存代码的工作空间src下 执行命令
     --借助生成的代码编写请求代码 //根据本地wsdl文件生成代码
        dos命令窗口进入要保存代码的工作空间src下 wsimport -keep 本地wsdl文件路径 


TCP/IP代理监控请求和响应信息


    正常不使用TCP/IP等代理形式访问http://127.0.0.1:12345/getWeather?wsdl能显示信息,在使用代理后,在浏览器进行访问http://127.0.0.1:54321/getWeather?wsdl 能显示出内容,表明代理设置好了,在TCP/IP窗口中就能看到请求和响应信息。若使用这个工具进行监控客户端,需要改变SEI中的端口为代理端口即可。




WebServcie 第二个案例天气预报

根据提供schema文件来生成代码

  制作schema文件

打开浏览器,访问http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl,然后右击查看网页源码,将其保存为.schema文件。

建立WebService Client端

新建Java Project,命名为WeatherProject.

在dos命令窗口下,进入到WeatherProject/src,执行wsimport –ptop.wilma.www.weather –keep D:\weather.wsdl 回车。

注意:直接生成客户端代码会抛异常,无法生成客户端代码

    1.将对应的wsdl文档保存到本地

    2.修改wsdl文档的部分内容  

      将<s:elementref="s:schema"/><s:any/> 改成<s:any minOccurs="2"maxOccurs="2"/>

     注:这个是Java代码调用net的webservcie的问题

再次执行上方代码会打印“generate code… compiling code…”,OK

回到工作空间,刷新工程

根据生成的wsdl文件来写测试类。可根据“<wsdl:service  name=”WeatherWS”> ”标签中的name即是工厂类。

package top.wilma.www.test;

import

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值