简单web服务开发(JWS,CXF,AXIS)

Posted STK0210

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单web服务开发(JWS,CXF,AXIS)相关的知识,希望对你有一定的参考价值。

(一)利用JWS开发web服务

开发Web服务器端:

  1.定义接口HelloWorld,使用@WebService注解修饰接口名,使用@WebMethod修饰需要对外发布的方法。

 

 

  2.HelloWorld接口实现类

 

 

  3.发布类HelloWorldService

 

 

  4.编译运行HelloWorldService 类之后查看WSDL文档http://localhost:8080/ HelloWorld?wsdl

 

 

 

客户端代码:

1.生成客户端所需要的文件

新建工程WebServerClient,进入工程的src目录,在DOS窗口输入:wsimport -keep http://localhost:8080/HelloWorld?wsdl动态生成客户端需要的文件。wsimport是JDK1.6自带的命令。

 

 

 

2.编写客户端代码并调用

 

调用代理中的sayHello()方法,接收到hello,likeyu

 

 

 

 

(二)利用CXF开发web服务

1.利用CXF开发Web Service服务端:

    1. 准备开发需要的jar包

 

 

      2.开发webservice接口

 

 

      3.编写Web服务接口的实现

 

 

      4.暴露Web Service的函数,运行函数暴露Web Service:

 

 

 

2.使用CXF开发Web Service客户端

 

 

3.在客户端编写测试代码并运行

 

 

题目(一):3.利用axis开发web服务

1.Apache Axis下载和安装

 

 

 

 

 

2.编写服务

 

 

3.发布服务

 

 

4.测试方法和运行结果

 

 

 

错误总结:

  1. 进行axis2项目测试的时候,首先是生成的.class文件无法运行,后来重新独立的项目代码,把package去掉,在命令行中编译,再把.class文件移动到pojo中,就正确的显示正确了。
  2. 进行cxf项目测试时,因为版本问题,新生成的客户端调用代码不能够按照预想的直接去调用sayhello方法,后来通过查看wsdl文档和通过wsdl2新生成项目文件,在调用方法时,新增加了一个getHelloWorldPort方法后成功调用
  3. Axis2项目测试的最后是使用pojo方法,但是在实际操作的时候,在Apache网页中调用方法,参数传递一直存在问题,一直用?name=likeyu传递参数去使用,后来也是通过点开查看xml文件,尝试去使用文件中标注的name=args,即?args=likeyu,发现参数传递成功,测试完成。

以上是关于简单web服务开发(JWS,CXF,AXIS)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA开发Web Service几种框架介绍

Web Service学习之一:Web Service几种框架

JAVA记录-WebService开发部署

JAX-WS、Axis2 和 CXF 的区别

Axis2 webservice 和 CXF web service 的区别

真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService