Java WebService记

本文介绍了Java WebService的概念及其重要性,重点讲解了使用Apache Axis2和CXF创建Web Services的步骤,包括服务发布、客户端调用、Spring整合CXF等内容,并提供了详细的配置和调用示例。
摘要由CSDN通过智能技术生成

JAS-WS 的全称为 Java API for XML Services ,代指Java程序设计语言中用于创建 Web Services 的API。Java程序员通过该API可快速开发基于XML的 Web Services 客户端及服务端。

Web Services 是应用程序组件之一,可被其他应用程序使用, XML 是 Web Services 的基础, Web Services 包含以下三大要素。

SOAP
WSDL
UUDI

Web Services开发

常用的 Web Services 框架有 Apache Axis1 、 Apache Axis2 、 Apache CXF ,而 Apache Axis1 已经逐渐被淘汰所以本文不会讨论,重点关注 Apache Axis2 及 Apache CXF 。

Apache Axis2

在IDEA中新建 Axis2Demo 项目后右键选择 添加框架的支持 并选中 Web Application 。

Java WebService记

Java WebService记

从Apache Axis2官网处下载 war包 进行部署,将 axis2.war 解压后把 WEB-INF 和 axis2-web目录复制到项目的 web 目录下(如下图所示)并启动Tomcat Server。

Java WebService记

Java WebService记

访问 
http://localhost:8080/Axis2Demo_war_exploded/axis2-web/index.jsp 出现下图的页面表示部署成功。

Java WebService记

Java WebService记

Axis2配置

在 Axis1 中的全局配置和 Servcies 的配置均在 server-config.wsdd 中进行配置,而 Axis2则将全局配置单独存放于 WEB-INF/conf/axis2.xml 中, services 的配置文件则位于 servcies。

发布服务(Publish Service)

新建一个 HelloService 类并编译为 HelloService.class 复制至 WEB-INF/pojo 目录下并重启服务。

// 不能声明package
public class HelloService {
    public HelloService(){}

    public String sayHello() {
        return "hello";
    }

    public String sayHelloToPerson(String name) {
        if (name == null) {
            name = "nobody";
        }
        return "hello, " + name;
    }
}

重启服务后再次访问 
http://localhost:8080/Axis2Demo_war_exploded/services/HelloService?wsdl 即可发现新发布的服务,点击 HelloService 即可查看Axis自动为该服务生成的WSDL,其描述了如何调用服务的方法及返回内容:

Java WebService记

Java WebService记

Java WebService记

使用 SoapUI 客户端调用 HelloService 服务方法:

Java WebService记

Java WebService记

而之所以 WEB-INF/pojo 目录下的 .class 文件会自动发布为服务是因为在 axis2.xml 配置文件中的 deployer 标签中所配置的该选项。

<deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
<!-- 如果需要在其他目录自动发布服务只需添加新的标签即可 -->
<deployer 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值