Web Services服务之间调用

来源:互联网 发布:mysql my.ini配置下载 编辑:程序博客网 时间:2024/05/16 17:33

      今天被大师兄调用到他的项目组帮忙实现一个东西,其实就是用Web Services实现服务之间相互调用,然后给服务指定相应的出端口。Web Services是第一次使用,就当做是学习新东西吧。

    上网查了一下实现Web Services有很多种方式,或使用xfire框架,或使用axis框架,或使用jdk自带的JAX-WS,当然是使用简单快捷的。一开始用了xfire框架,很快就搭建好了web服务,生成了相应的wsdl文件,服务端完成。但当创建客户端时,在cmd下使用wsimport指令去响应wsdl文件时老是提示“无法访问该wsdl文件”,几次测试都不行,网上查了也没有这样的资料,只好换一种方式去实现。

      接下来是采用JAX-WS的方式,用Myeclipse下依然很容易就生成了,新建一个Web Services Project,选择JAX-WS方式,就创建好了工程。然后在该工程下写自己的类和方法,右键项目新建一个Web Service,指定你刚才写的类,就可以生成相应的“类名+Delegate”的文件,启动项目,在浏览器地址栏输入项目地址:

http://localhost:8080/Web_1/HelloDemo_1Port

     显示如下图,就表示你的服务已经生成。


      接下来是生成客户端,在Myeclipse下也是很简单,直接新建一个Web Service Client,指定wsdl的地址,就是刚才的http://localhost:8080/Web_1/HelloDemo_1Port?wsdl,这样你就相当了在本地工程有了你想要使用的服务里的类和方法,可以直接操作,像操作普通的类和方法一样。一个简单的Web Services的Demo就完成了。

      之后我生成了3个服务,其中第三个服务调用了前两个服务的方法,最后用一个客户端去使用第三个服务。

    最后的一个问题我一直没搞懂,大师兄说让我指定服务对外的端口,看服务里面有没有端口绑定的方法,始终没有弄明白什么意思,反正按照大师兄的意思去弄,总是弄不出来,后来大师兄问了大神,说他的那个思路有问题,我想了一下,不知道是不是说工程都是放到tomcat容器下去执行生命周期,他们的端口都由容器统一固定,不能更改,若要实现大师兄想要的效果,那就得从进程与端口映射的角度再去考虑了,我也不知道是否正确。这个问题现在还在研究中,我还是不清楚大师兄的需求,先告一段落吧,哈哈~~

0 0
原创粉丝点击