调用XFire框架编写的webservice接口的理解

本人大四,第一次参加正式工作,在上班两个星期时经理让我写一个调用webservice的客户端,我当时很是不解,webservice我连挺都没听过,然后我就在网上到处看,也看了一些视频,终于是知道webservice是啥了,我的理解webservice就是一个一门技术或者可以说是一个框架,他通常用在我们大型的项目中,涉及到多种语言,而且需要调用各自的服务,只要我们提供出来一个接口,就可以让其他语言调用,其实他的原理就是SOAP,简单来说SOAP就是一个通信协议,而我们webservice就约定客户端和服务端都用SOAP协议来传输数据,而我这次接触的是XFire框架,网上说它相对于之前的java中的webservice框架是有很大的优势的,但是具体我也没弄明白。提到webservice还有一个就是不得,就是wsdl,我们必须弄清楚wsdl文件的格式,还有一个webservice调用的时候是在局域网内的,也就是说必须要有具体的IP加上端口,至于外网中的调用,我暂时还没有涉及到。

下面就来说说我这次遇到的问题,首先是服务提供商提供的一些调用文档,我最开始拿到文档的时候是很懵逼的,搞不清楚,接触了几天后才弄清楚,有点后知后觉的意思,这个文档就是服务商提供的约定,简而言之我调用他的服务,我需要先发邮件给他说明白我需要调用他的服务,告诉我申请的服务的AppID,AppName

090144_C8Cu_3212315.png

然后就是这个服务中提供的具体的方法说明,然后服务商提供给我一个调用接口,在内网环境下我们是可以在浏览器中直接访问到这个接口的,显示的是一个XML格式得网页,我们通常叫他wsdl文件

http://ip地址:port(端口号)/服务商应用名称/services/提供服务的接口名称?wsdl

这个时候我们拿到这个接口的第一件事就是把他放在浏览器中去访问试试,如果可以访问成功,网页上将显示wsdl文件,这个时候我们可以将这个文件保存下来

我们测试能不能获取到这个接口的数据时候,用java  project中main函数 和web 项目都是可以的

 

用到的XFire 的jar包很重要,需要用到的包之间在网上找,如果不断提示少包的话慢慢补充

方法一:自动生成客户端代码(使用于服务比较复杂的情况)

    新建java项目 --》将刚才的wsdl文件拷贝到项目的根路径下--》这个时候我们new 一个webservice client 将我们刚才新建的java project下的wsdl文件选中即可,一只next到结束,这个时候我们等待自动生成客户端代码。--》新建一个测试类,建一个main函数

    代码示例:

    Service serviceModel = new ObjectServiceFactory().create(提供服务的接口名称.class);       
            XFire xfire = XFireFactory.newInstance().getXFire();
            XFireProxyFactory factory = new XFireProxyFactory(xfire);    
            String serviceUrl = "接口地址";//服务商提供的,不用带 ?wsdl
            提供服务的接口名称 client = null;
            try {
                client = (提供服务的接口名称) factory.create(serviceModel, serviceUrl);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
            System.out.println(client.getTestString("0"));//可以开始调用服务端的方法了

方法二:手动生成客户端代码,适用于服务较为简单的方法

导入一些XFire所需jar包--》手动写与服务端名称相同的接口报名,参数实体类(包名也必须完全相同 )--》建测试类,main函数测试

代码通方法一一样

整个的思路就是这样,其实调用webservice的接口相对于写一个服务端要简单的多,其实测试一个接口的连通性还可以用soapui这个工具,非常直观,大家可以自己去了解。

下次说一下服务端的编写

 

 

 

 

 

转载于:https://my.oschina.net/u/3212315/blog/881643

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调用WebService服务的方法有多种。一种方法是利用命令或工具将WebService提供的wsdl文件生成对应的java类,这样就可以像调用本地类一样调用WebService提供的接口。这种方法的优点是调用简单,无需自己编写太多的东西,但缺点是生成的代码过于庞大,不便于阅读。 另一种方法是使用不同的Java框架调用WebService服务。例如,可以使用XFire框架进行调用。可以通过导入相关的包和编写相应的代码来调用WebService服务。以下是使用XFire框架调用WebService的示例代码: ``` import org.codehaus.xfire.client.Client; import java.net.URL; public class WebServiceTest { public static void main(String[] args) { try { // 服务地址 String url = "http://127.0.0.1:8080/service-test/services/gateway?wsdl"; // 方法名 String method = "invoke"; Client client = new Client(new URL(url)); Object[] result = client.invoke(method, new Object[]{"test", "queryOrder", "{\"tradeno\":\"1648100061003\",\"mchid\":\"10001\"}"}); System.out.println("服务调用结果:" + result<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [调用webservice服务方式总结](https://blog.csdn.net/liuyunyihao/article/details/125083983)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值