因为用到这个技术 翻阅了一些 资料 中间也遇到了很多问题
IDEA版本 2016.2.5
请注意 这篇不是用来探讨这个技术的底层 而是 如何搭建这个环境 部署起来的
跟网上其他教程不一样 我们采取手动搭建的方式创建 可能使你对这个技术的部署有一点更深的理解
1. 首先创建一个web工程 并勾选 WebServices 在下面的Version 选项中选择 Apache Axis
2. 下图是我创建的工程
lib 为 使用该技术最少的依赖
src下 的example 是自动生成的例子 我们要写自己定义的例子
WEB-INF 下 server-config.wsdd 是 WebServices服务的部署文件 所有的webservices服务都需要在这里部署
对应 IDEA 自动生成 HelloWord 服务 就在其中注册 如下 感兴趣相关的注释 可以在我另一篇博客中有注释 这里 等下注册自定义服务时 要用到 下面的格式
http://example
web.xml 下 是相关servlet的映射配置
创建后用默认快捷键 Ctrl +shift+alt+S 打开Project structure 发现Problems有错误 点击Fix 选择Add就行
3. 在src 下新建个目录demo 然后定义一个类 作为服务类 方法的返回值 为String 类型 因为常用返回参数 返回 json格式
或 者XML格式 我的代码如下:
package demo;
/**
* Created with IntelliJ IDEA.
* Author: Dax
* Date: 2016/11/19
* Time: 23:49
*/
public class DemoService {
//传输int类型参数 如果参数在strings 的索引值范围内 则返回对应元素 否则返回“NO_DATA_FOUND”代码
public String getElement(int index) {
String[] strings = {"零", "壹", "貳", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
return index >= 0 && index < strings.length ? strings[index] : "NO_DATA_FOUND";
}
}
4. 生成WSDL文件 WSDL文件 其实就是 将这个服务翻译 通用的格式 不同的语言 都可以识别的文件 发布到web上 可以由它来 生成服务端跟客户端 生成前应该编译一下 最简单打开tomcat跑一下 然后再按步骤生成wsdl文件 生成的方式如图:
点击后出现一个选项卡 如下:
Web Service Namespace : 这个是WSDL文件的名称空间用来标识该WSDL 具有唯一性 一旦定义 最好不要更改 除非你非常熟悉
一般格式为 http://+ 包的反向地址 此处我更改为 http:// service.demo.cn/demoService
WebService URL: 是你发布服务的访问URL 此处我更改为 :http://localhost:8080/services/DemoService
Binding style: document
Use items in bindings:literal
完成上面后 点击OK 生成 代码 其中可能 报错
直接删掉后 格式化代码如下:
5.然后在server-config.wsdd文件下注册 服务:
第一行 name 为 自己定义 DemoService 后面 跟上面第四步 定义的参数
第二行 服务类名 跟他的包地址
第三行 允许暴露的方法 全部暴露 用通配符 * 多个方法 方法名 用逗号隔开 如 value=" getData,getName"
第四行 定义域 此处为服务器
第五行 为第四部定义的名称空间
http://service.demo.cn/demoService
注册完毕后在 服务类左边点击 按钮 会有如下:
6.运行tomcat 然后 地址栏输入 http://localhost:8080/services 显示该端口下的所有服务:
点击后 地址栏链接显示为:http://localhost:8080/services/DemoService?wsdl
会显示wsdl文件 如果 空白点击右键 查看页面源代码 显示如下:
部署webService服务成功 关于 客户端的生成 在下面的文章中有介绍详细的方法:
点击查看