这几天装了RAD,还在SOA入门阶段。所以在RAD里面的快速技术入门里面找了几个web service相关例子,边做边学。
做了三个例子,一个是自底向上的JAX-RPC,一个是自顶向下的JAX-RPC,最后一个是JAX-WS的web服务。
所谓自底向上,就是先写好JAVA BEAN,然后再根据你写的BEAN去生成WSDL。而自顶向下则反过来,先写好WSDL,然后生成BEAN,再修改需要被调用的方法。
我装的是RAD7.5的测试版,系统的集成功能做得还不错。另外EJB3.0开发服务比2.0简单一些,至少不用再给每个bean配置远程和本地接口了。
自顶向下:
1.新建一个EJB项目temp(这个项目我没有做任何改动,就是系统自动生成的那些代码。主要是生成一个相关联的EAR包)
2.创建动态web项目router。(我使用的是HTTP协议,如果用JMS来承载SOAP的话就要新建一个EJB项目了)
3.导入已经写好的WSDL到项目中来。
4.在router下新建一个web service,选择自顶向下EJB服务。在向导中绑定服务到第一步创建的ear包以及第三步导入的wsdl文件。确保服务器和客户端的运行时环境为JAX-RPC。对服务器和客户端都设置到测试级别,可以直接在测试机上进行测试。
5.服务配置好后,有一个类应该是自动打开的。XXXBingdingImpl,是一个实现绑定的类。在这个类里,把WSDL里已经定义的方法函数修改成你所需要的功能。(该类的路径应该在temp项目下的sample包中)
6.右键选择wsdl文件,选择web service explorer 测试。可以在测试服务器中调用自定义的方法。
自底向上和自顶向下的编程方法差不多。先建立一个serviceEJB项目,写好自己要用的BEAN。生成web service时选择自底向上EJB的web service即可。
JAX-WS的学习样例,根据教程,是建立一个带有安全机制的web service。
1.先找到IBM密钥管理工具(在RAD安装路径下的jdk/jre/bin/ikeyman.exe 。使用自带的client密钥数据库,选择与其匹配的证书。将此证书extract,保存。然后再打开jdk下的密钥数据库,把刚才的证书添加进去。
2.创建两个动态web,一个服务器,一个客户端。
3.找到WSDL文件引入项目,右键web service->创建java bean框架。
4.进入web service生成向导,选择自顶向下java bean web service。
5.修改xxxxPortbingdingImpl类下面的方法。
6.调用测试程序来运行。