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
。
从Apache Axis2官网处下载 war包 进行部署,将 axis2.war
解压后把 WEB-INF
和 axis2-web
目录复制到项目的 web
目录下(如下图所示)并启动Tomcat Server。
访问 http://localhost:8080/Axis2Demo_war_exploded/axis2-web/index.jsp
出现下图的页面表示部署成功。
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,其描述了如何调用服务的方法及返回内容:
使用 SoapUI
客户端调用 HelloService
服务方法:
而之所以 WEB-INF/pojo
目录下的 .class
文件会自