学习 WebService 第三步:一个简单的实例(RAD+WAS 8.5开发SOAP项目)
【开发环境】
- Web Service 服务器端开发工具:RAD(Eclipse内核)
- Web Service 服务器:IBM WebSphere v8.5
- REST/SOAP:SOAP(JAX-WS/SAAJ:JAX-WS)
功能非常初级,客户端→服务器端 input 一个字符串xxx,服务器端返回“xxx 您好!现在时间是:2018年3月17日23:57:41”
参考资料:http://blog.csdn.net/yangwenxue_admin/article/details/51059125 (部分参考)
- 开发服务器端(本文)
- 开发客户端(请参考↑的参考资料,本文略)
第一步、开发服务器端
每个Web Service组件需要2个部分:接口和实现类。← 似乎只有类就行,这个例子是我第一个WebService 项目,先按参考资料模仿着做,以后再逐渐追加更多的内容。
1、新建Dynamic Web Project工程 TestWebService。(如果在Wizards看不到,勾选Show all wizards)
我的RAD环境和Websphere是配置好的,也可以用其他开发环境和服务器,请确保服务器能正确启动。


2、在工程中创建包 test.ws.soap (创建包不是必要的,不过是好习惯)

3、开发一个 WebService 业务接口,方法使用@WebService修饰。
在包中创建interface如下,WebInterface。

package test.ws.soap; import javax.jws.WebService; @WebService
public interface WebInterface { String WebMethod(String str); }
4、写一个这个接口的实现类 WebClass,也需要使用@WebService修饰,并指定所需要实现的接口、及服务名称。

package test.ws.soap; import javax.jws.WebService;
import java.util.Date; @WebService(endpointInterface="test.ws.soap.WebInterface",serviceName="TestWS")
public class WebClass implements WebInterface { @Override
public String WebMethod(String str) { return str+" Hello! now is "+new Date();
}
}
5、在浏览器中输入:http://127.0.0.1:9080/TestWebService/TestWS?wsdl 查看结果,如果成功生成如下 WSDL 文档则表示 Web Service 暴露成功。
http://127.0.0.1:9080/工程名/服务名?wsdl
http://127.0.0.1:9080/TestWebService/TestWS?wsdl
WSDL 文档
WSDL 划重点 类=端口 port,方法=操作 operation,参数=消息 message
WSDL 更详细的说明,参考:学习 WebService 第二步:知识准备——WSDL文件解析
<definitions name="TestWS" targetNamespace="http://soap.ws.test/">
<types>
<xsd:schema>
<xsd:import namespace="http://soap.ws.test/"
schemaLocation="TestWS_schema1.xsd" />
</xsd:schema>
</types>
<message name="WebMethod">
<part name="parameters" element="tns:WebMethod">
</part>
</message>
<message name="WebMethodResponse">
<part name="parameters" element="tns:WebMethodResponse">
</part>
</message>
<portType name="WebInterface">
<operation name="WebMethod">
<input message="tns:WebMethod"
wsam:Action="http://soap.ws.test/WebInterface/WebMethodRequest">
</input>
<output message="tns:WebMethodResponse"
wsam:Action="http://soap.ws.test/WebInterface/WebMethodResponse">
</output>
</operation>
</portType>
<binding name="WebClassPortBinding" type="tns:WebInterface">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="WebMethod">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="TestWS">
<port name="WebClassPort" binding="tns:WebClassPortBinding">
<soap:address location="http://127.0.0.1:9080/TestWebService/TestWS" />
</port>
</service>
</definitions>
第一步、开发客户端
先不做了,因为主要想用SoapUI测试WebService API,所以做个Server端即可,Client端,大家有兴趣请参考:http://blog.csdn.net/jackphang/article/details/8788178
学习 WebService 第三步:一个简单的实例(RAD+WAS 8.5开发SOAP项目)的更多相关文章
- maven权威指南学习笔记(三)——一个简单的maven项目
目标: 对构建生命周期 (build lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...
- Django学习 之 Django安装与一个简单的实例认识
一.Django简介 1.MVC与MTV模型 (1)MVC模型 Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的. ...
- 学习 WebService 第三步:一个简单的实例(SoapUI测试REST项目)
原文地址:SOAPUI测试REST项目(六)——REST服务和WADL ↑↑↑ 原文用的SoapUI,2018-3-19时,这个软件已经更名为ReadyAPI(集成了SoapUI),因此下文中我重新截 ...
- 响应式编程笔记三:一个简单的HTTP服务器
# 响应式编程笔记三:一个简单的HTTP服务器 本文我们将继续前面的学习,但将更多的注意力放在用例和编写实际能用的代码上面,而非基本的APIs学习. 我们会看到Reactive是一个有用的抽象 - 对 ...
- 学习MQ(三) 一个实例
学习MQ(三) 一个实例. 现在有两台机器A和B,分别安装了MQ6.0,我要通过MQ进行A和B之间的双向通信. 我打算分两步,第一步:实现A到B的数据传输. 在A上: 1.创建队列管理器 QM_100 ...
- C语言入门教程: 一个简单的实例
对于学习要保持敬畏! 语言不只是一种工具,还是一种资源,因此,善待它,掌握它! 我们知道,对于未知通常都会充满好奇和畏惧,既想了解它,又害怕神秘面纱隐藏的不确定性.对于一门编程语言同样如此,我将以 ...
- 【Python学习笔记三】一个简单的python爬虫
这里写爬虫用的requests插件 1.一般那3.x版本的python安装后都带有相应的安装文件,目录在python安装目录的Scripts中,如下: 2.将scripts的目录配置到环境变量pa ...
- 【Java学习笔记】如何写一个简单的Web Service
本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web De ...
- Linux内核分析 笔记三 构造一个简单的Linux系统MenuOS ——by王玥
一.知识点总结 (一)Linux源代码简介 arch/x86目录下的代码是我们重点关注的 内核启动相关代码都在init目录下 start_kernel函数相当于普通C程序的main函数 linux的核 ...
随机推荐
- Trie入门讲解
我们常常用Trie(也叫前缀树)来保存字符串集合.如下图所示就是一个Trie. 上图表示的字符串集合为$\{a,to,tea,ted,ten,i,in,inn \}$,每个单词的结束位置对应一个“单词 ...
- 如何使用动画库animate.css
animate.css是一个CSS3动画库,里面预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut).淡入淡出(fadeI ...
- Tomcat:使用startup.bat启动tomcat遇到报错
问题:使用startup.bat启动tomcat的时候报错,按照网页上的办法都试了一遍,但是没有解决问题.命令窗口启动tomcat会一闪而过,然后退出. 解决:1 检查环境变量配置是否有问题: CAT ...
- sqlserver的实例名忘记了
电脑图标右击/管理/服务和应用程序/服务 也可以直接services.msc打开 打开服务,找到sqlserver的服务,这个服务括号中的名称就是实例名了,但是要加上localhost,也就是loca ...
- pandas中数据聚合【重点】
数据聚合 数据聚合是数据处理的最后一步,通常是要使每一个数组生成一个单一的数值. 数据分类处理: 分组:先把数据分为几组 用函数处理:为不同组的数据应用不同的函数以转换数据 合并:把不同组得到的结果合 ...
- Java JDBC的基本知识
CallableStatement接口——主要调用数据库中的存储过程 即为一种方法,可以调用, 传递参数 delimiter // //这里是改变执行操作语句的分隔符,也就是将SQL语句的&quo ...
- 基于Centos7.2使用Cobbler工具定制化批量安装Centos7.2系统
1.1 定制Centos_7_x86_64.ks文件内容 # Cobbler for Kickstart Configurator for CentOS 7.2.1511 by Wolf_Dre ...
- 预防cdn链接失效,无缝切换本地文件
如今的前端项目追求的不仅仅是能用能看的程度,而是愈发追求项目的性能,对用户体验的影响.而现在的开发工具在性能优化方面也替我们做很大一部分的工作,想必大家对CDN的使用都是轻车熟路了,但是大家有没有考虑 ...
- ultraedit编辑器破解版下载
ultraedit一款功能丰富的网站建设软件,需要的朋友可以看看. 百度百科:UltraEdit 是一套功能强大的文本编辑器,可以编辑文本.十六进制.ASCII 码,完全可以取代记事本(如果电脑配置足 ...
- Django与多个数据库交互
定义数据库 在Django中使用多个数据库的第一步是告诉Django您将要使用的数据库服务器. 数据库可以有您选择的任何别名.但是,别名 default 有着特殊的意义.Django使用别名为 def ...