版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Webservice培训顾邹阳Webservice简介我本人了解Web service就是调用其他网站的资源的一种方法。主要分成:Web效力和调用即效力端与客户端Webservice是一种能简单快速实现效力与客户端调用的一种可以由多种言语实现的方法可以是java,C#等详细的任务原理:效力器端发布一个效力,然后客户端经过效力器端发布出来的wsdl来进展访问 如今比较流行的java开发包有axis,axis2,CXF,xfire详细开发的时候所用的工具我这边是eclipse发布效力器我这边用的是Tomcat5.5详细的程序开发axis1.axis所要用到的包为:axis.jar, axis-an
2、t.jar, commons-discovery-0.2.jar, commons-logging-1.0.4.jar, jaxrpc.jar, log4j-1.2.8.jar, saaj.jar, wsdl4j-1.5.1.jar详细的开发的时候要先配制web.xml要在web.xml里参与如下内容:AxisServletorg.apache.axis.transport.AxisServletAdminServletorg.apache.axis.transport.AdminServlet100详细的程序开发axisSOAPMonitorServiceorg.apache.axis.mo
3、nitor.SOAPMonitorServiceSOAPMonitorPort5001100AxisServlet/servlet/AxisServletAxisServlet*.jwsAxisServlet/services/*SOAPMonitorService/SOAPMonitor详细的程序开发axis详细举例:效力器端的类:public class SayHello public static String sayHello(String name) return Hello+name;这个方法要定义成public 要有前往类型,参数和详细的前往详细的程序开发axis发布:要在ser
4、ver-config.wsdd里进展发布我们在server-config.wsdd里找到 在这之后添加我们本人的要进展发布的方法这里定义的方法名为: SayHello(可以随意),假设是简单的方法普通格式为RPC 就可以了com.land.axis.server.SayHello这个就是类的途径 配制完保管后我们就可以启动TOMCAT了我这里工程名为axisws,tomcat的端口为9001所以得到 以下途径localhost:9001/axisws/services大家可以看到以下页面详细的程序开发axis点击SayHello可以看到以下页面详细的程序开发axis - - - - - - -
5、 - - - - - 详细的程序开发axis假设看到以上的页面阐明他的发布胜利了那么我们就可以再去写一个客户端程序如下:import .MalformedURLException;import java.rmi.RemoteException;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class SayHelloClient public static void main(String args) /
6、TODO 自动生成方法存根String endpoint = localhost:9001/axisws/services/SayHello;Service service =new Service();/回调前往值在这里进展序列化Call call;trycall=(Call)service.createCall();/定义回调用的callcall.setTargetEndpointAddress(new .URL(endpoint);/把要调用的方法的地址放在这里call.setOperationName(sayHello);/这个是方法名String name=顾邹阳;/这个是sayHe
7、llo方法的参数定义String obj = (String) call.invoke(new Objectname);/开场调用obj是前往值System.out.println(前往值:+obj); catch (ServiceException e) e.printStackTrace(); catch (MalformedURLException e) e.printStackTrace(); catch (RemoteException e) e.printStackTrace();我们执行一下假设胜利的话会在控制台出现如下的打印 前往值:Hello顾邹阳详细的程序开发axis22.
8、AXIS2用POJO实现0配置的WebServiceAxis2支持SOAP1.1和SOAP1.2,我这里只讲几个简单的例子Axis2的下载和安装 可以从如下的网址下载Axis2的最新版本: /axis2/ 我运用了目前Axis2的最新版本1.4.1。可以下载如下两个zip包: axis2-1.4.1-bin.zip axis2-1.4.1-war.zip 其中axis2-1.4.1-bin.zip文件中包含了Axis2中一切的jar文件, axis2-1.4.1-war.zip文件用于将WebService发布到Web容器中。 将axis2-1.4.1-war.zip文件解压到相应的目录,将目
9、录中的axis2.war文件放到webapps目录中并启动Tomcat。 在阅读器地址栏中输入如下的URL: localhost:9001/axis2/ 假设在阅读器中显示出如图1所示的页面,那么表示Axis2安装胜利。详细的程序开发axis2详细的程序开发axis2编写和发布WebService在Axis2中不需求进展任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中一切的public方法将被发布成WebService方法。 下面我们来实现一个简单的POJO,代码如下:publicclassTestServicepublicStringsayHello (S
10、tringname)/这个方法是有参数的return Hello: +name;publicintgetRandom ()/这个方法是没有参数的returnnewjava.util.Random().nextInt(1000); 在TestService类中有两个方法,由于这两个方法都是public方法,因此,它们都将作为WebService方法被发布。 编译TestService类后,将TestService.class文件放到webappsaxis2WEB-INFpojo目录中假设没有pojo目录,那么建立该目录。如今我们曾经胜利将TestService类发布成了WebService。在阅
11、读器地址栏中输入如下的URL:localhost:9001/axis2/services/listServices详细的程序开发axis2详细的程序开发axis2在阅读器地址栏中输入如下的两个URL来分别测试sayHello和getRandom方法:localhost:9001/axis2/services/TestService/sayHello?name=billlocalhost:9001/axis2/services/TestService/getRandom详细的程序开发axis2在编写、发布和测试配置的WebService时应留意如下几点: 1.POJO类不能运用package关键
12、字声明包。 2.Axis2在默许情况下可以热发布WebService,也就是说,将WebService的.class文件复制到pojo目录中时,Tomcat不需求重新启动就可以自动发布WebService。假设想取消Axis2的热发布功能,可以翻开webappsaxis2WEB-INFconfaxis2.xml,找到如下的配置代码:true 将true改为false即可。要留意的是,Axis2在默许情况下虽然是热发布,但并不是热更新,也就是说,一旦胜利发布了WebService,再想更新该WebService,就必需重启Tomcat。这对于开发人员调试WebService非常不方便,因此,在开
13、发WebService时,可以将Axis2设为热更新。在axis2.xml文件中找到false,将false改为true即可。 3.在阅读器中测试WebService时,假设WebService方法有参数,需求运用URL的恳求参数来指定该WebService方法参数的值,恳求参数名与方法参数名要一致,例如,要测试sayHello方法,恳求参数名应为name,如上面的URL所示。 4.发布WebService的pojo目录只是默许的,假设读者想在其他的目录发布WebService,可以翻开axis2.xml文件,并在元素中添加如下的子元素: 上面的配置允许在webappsaxis2WEB-INF
14、my目录中发布WebService。例如,将本例中的TestService.class复制到my目录中也可以胜利发布但要删除pojo目录中的TestService.class,否那么WebService会重名。详细的程序开发axis2实现调用WebService的客户端程序import space.QName;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.rpc.client.RPCServiceClient;
15、public class RPCClient public static void main(String args) throws Exception / 运用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); / 指定调用WebService的URL EndpointReference targetEPR = new详细的程序开发axis2EndpointReference(localhost:9001
16、/axis2/services/TestService); options.setTo(targetEPR); / 指定getGreeting方法的参数值 Object opAddEntryArgs = new Object gzy;/参数的内容 / 指定getGreeting方法前往值的数据类型的Class对象 Class classes = new Class String.class;/前往值为String / 指定要调用的getGreeting方法及WSDL文件的命名空间 QName opAddEntry = new QName(/axis2, sayHello); / 调用getGr
17、eeting方法并输出该方法的前往值 System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)0);/这里有一个参数 / 下面是调用getPrice方法的代码,这些代码与调用getGreeting方法的代码类似 classes = new Class int.class;/前往值为int opAddEntry = new QName(/axis2, getRandom);/详细的方法名 /axis2为命名空间 System.out.println(serviceClient.invo
18、keBlocking(opAddEntry, new Object, classes)0);/参数为空时不能为null只能为new Object详细的程序开发CXFCXF是不需求web就能直接发布的一个webservice工具下面我们直接用例子来阐明CXF的运用我这里用到的包为apache-cxf-2.1.8.zip1先建立一个HelloWorld的工程Java运转环境要1.5以上然后选择构建途径导入外部jar如图详细的程序开发CXF把apache-cxf-2.1.8里面解压之后的lib下面的包全部导入进来(我在这里是先在工程下建立了一个lib把一切的lib都导入到 了里面)详细的程序开发CX
19、F建立一个接口接口名叫HelloWold详细的程序开发CXFpackage test;import javax.jws.WebService;WebServicepublic interface HelloWorld public String sayHello(String name);详细的程序开发CXF再添加一个实现类package test;import javax.jws.WebService;WebServicepublic class HelloWorldImpl implements HelloWorld public String sayHello(String name)
20、System.out.println(say hello is called);return Hello +name;这里接口和实现类里都有一个标注WebService这是为了把这个类发布成webservice所要用到的在标注后还要导入import javax.jws.WebService;详细的程序开发CXF然后我们建立一个webservice启动的类package test;import org.apache.cxf.endpoint.Server;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;public class MainServer public static void main(String args) JaxWsServerFactoryBean factory=new JaxWsServerFactoryBean();factory.setServiceClass(HelloWorldImpl.class);/这里的是实现类而不是接口factory.setAddress(localhost:8080/HelloWorld);Server server=fa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三开学前的讲话稿5篇
- 西方传统节日感恩节演讲稿参考5篇
- 2024中外合资企业体育赛事组织与经营合同书
- 销售个人简历模板6篇
- 2024年广州实习生培训合同
- 2024基因测序服务合同
- 2024至2030年中国塑料刀条数据监测研究报告
- 项目转让协议书范本(8篇)
- 财务部会计财务评价中心范文(6篇)
- 借用演员合同范例
- CPK与CP详细讲解资料(课堂PPT)
- 光动力治疗在气道肿瘤中的临床应用课件
- 小学语文人教三年级上册 群文阅读《奇妙的中心句》
- 大数据和人工智能知识考试题库600题(含答案)
- 2023年上海机场集团有限公司校园招聘笔试题库及答案解析
- 镜头的角度和方位课件
- 污水处理常用药剂简介知识讲解课件
- 五年级上册英语课件-Unit 1《My future》第1课时牛津上海版(三起) (共28张PPT)
- 光交接箱施工规范方案
- 气温和降水学案
- 普及人民代表大会制度知识竞赛试题库(1000题和答案)
评论
0/150
提交评论