ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:227.01KB ,
资源ID:30248471      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30248471.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(webservice五种发布方式及客户端调用.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

webservice五种发布方式及客户端调用.docx

1、webservice五种发布方式及客户端调用WebService 四种发布方式总结 Author:yczhang1.CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为: java.lang.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改

2、was,于是改用了axis2方式,下文会介绍。该问题在此处做个记录,以后使用cxf与was的时候需要注意使用cxf+spring搭建WebService:第一步,添加jar包。此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包:而泰康的was环境则需要如下jar包:明显的多了很多,原因应该是服务器jar包池的不同。根据错误提示缺什么补什么就可以了,注意jar包勿重复。第二步,配置web.xml文件,如下(重要的地方已标记): contextConfigLocation classpath:/applicationContext.x

3、ml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /* CXFServlet org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /webservice/* 上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;第三步,编写接口类与实现类,注意注解接口

4、类WebServicepublic interface SendService public boolean sendOA(WebParam(name=param)String param); public boolean sendOrg(OrgEntity org);实现类WebService(endpointInterface=com.service.SendService,serviceName=sendService)public class SendServiceImpl implements SendService public boolean sendOA(String para

5、m) System.out.println(-sendOA-param:+param); if(param.equals(zhoujian) return true; return false; public boolean sendOrg(OrgEntity org) System.out.println(-sendOrg-begin-); return true; 第四步,Spring配置文件 !- -“jaxws:client”该标签可以不必写,访问时可以手动拼接该url第五步,发布,直接部署到服务器,访问:http:/10.137.138.11:9080/Wb/webservice/s

6、endServie?wsdl2.Xfire方式据说xfire方式已经很老了,但个人感觉,xfire方式很简单且容易配置,不知为啥过时了,也没感觉cxf、axis2哪里先进,我当时卡在cxf与was搞不定时想尝试xfire方式被周经理给拒绝了。Xfire方式发布webservice:第一步,添加jar包,如下:第二步,修改web.xml文件 XFireServlet org.codehaus.xfire.transport.http.XFireConfigurableServlet 0 XFireServlet /services/* 第三步,编写接口类接口类:public abstract i

7、nterface IBankingService public abstract String transferFunds(String paramString1);实现类:public class BankingService implements IBankingService public String transferFunds(String fromAccount) return fromAccount+:ok; 第四步,编写services.xml配置文件在WEB-INF目录下新建目录META-INF,在该目录下新建文件夹xfire,该目录下新建文件services.xml Ban

8、king mybank com.mybank.xfire.example.IBankingService com.mybank.xfire.impl.BankingService 第五步,发布,部署到服务器,访问url:http:/localhost:9080/Xfire/services/Banking?wsdl3.AXIS2方式Axis2发布WebService有两种方式,其一是利用axis2插件打成aar包放到axis_war里面部署到服务器发布;其二是不打包发布(本例);我不清楚打包发布有什么好处,感觉很麻烦项目外还得部署一个war,现在介绍第二种不打包的方式,类似xfire,同时由于

9、cxf与was不兼容导致wsdl.jar报错,但是xfire与axis2也用到wsdl.jar却不报错,我个人也是很费解,泰康项目目前使用的就是axis2方式。Axis2发布WebService:第一步,添加jar包,如下:很多是吧,不过都是从axis.war里面WEB-INF下的lib目录复制来的。第二步,修改web.xml文件 AxisServlet org.apache.axis2.transport.http.AxisServlet 1 AxisServlet /services/* 第三步,编写实现类public class ServiceImpl public String say

10、Hello(String name) System.out.println(=); return hello:+name; 第四步,增加WEN-INF内容将axis.war解压下的WEN-INF文件夹内的conf、modules复制到项目WEB-INF下第五步,在WEB-INF下创建文件夹services(名字不可改),在该目录下创建文件夹(名称随意),在该目录下创建文件夹META-INF(名称不可改),在该目录下创建文件services.xml(名称不可改),该文件内容为: Web Service例子 com.ServiceImpl 第六步,部署到服务器,发布URL为:http:/local

11、host:9080/Axis2Test/services/axisDemo?wsdl4.AXIS1方式同上,不知道AXIS1哪里不好,配置也很简单,如下:第一步,添加jar包第二步,修改web.xml AxisServlet org.apache.axis.transport.http.AxisServlet AxisServlet /services/* 第三步,实现类与实体类实现类:package com;public class Axis public String sayHello(String name) System.out.println(=:+name); return hi:

12、+name; public String sayHelloToUser(User u) System.out.println(=:+u.getId(); System.out.println(=:+u.getPath(); System.out.println(=:+u.getAdd(); return hi:+u.getName(); 实体类:package com;public class User private String id; private String name; private String add; private String path; getter setter 方

13、法第四步,创建配置文件:在WEB-INF下新建文件“server-config.wsdd” !- globalConfiguration 标签内容为系统默认 无需更改 !service 标签是需要配置的 - !name 是url中需要的参数 - !allowedMethods 的value值是方法名 可以写*- !className的value值是类路径- !wsdlTargetNamespace的wsdl文件中TargetNamespace的值- parameter name=wsdlTargetNamespace value= !此处很重要,若方法需要传实体类,则配置此处- !默认- 第五

14、步,部署,同上。5.HTTPCLIENT方式Httpcilent属于一种比较简单的实现方式我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种:1、通过浏览器HTTP调用,返回规范的XML文件内容 2、通过客户端程序调用,返回结果可自定义格式 接下来,我利用Eclipse作为开发工具,演示一个Httpclient调用WebService的简单示例步骤如下:准备工作:用到的jar包有: 下载链接(第一步:新建Java Project,项目名称为HttpCallWebService第二步:将所需jar包导入到库中第三步:编写

15、调用class,这里有两种方式调用,即GET方式和POST方式,由于POST方式较安全,故这里采用POST方式调用;请求数据的构造也有两种方式:静态和动态构造,下面分别介绍这两种方式:注:这里以E邮宝开放的webservice接口为例调用其中一个API函数,而E邮宝的webservice基于SOAP,故请求数据为SOAP格式,大家可根据自己情况进行修改。静态构造请求数据:package com.http;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import mons.httpclient.HttpClient;import org.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1