您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 创业/孵化 > Jaxws-webservice初级教程
随着近几年来,SOA,EAI等架构体系的日渐成熟,Webservice越来越炽手可热,尤其是在企业做异质平台整合时成为了首选的技术。Java的Webservice技术更是层出不穷,比较流行的有:Axis2,SpringWS以及Jaxws。本人在日常工作和以往工程中,在使用了上述这些Webservice后进行了总结,比较,最终觉得jaxws是目前最标准,需要额外第三方插件最少,配置最少最灵活的webservice。JAXWS适合几乎所有Webservice客户端的调用。该教材只涉及客户端实现方式,不涉及服务端。1、Jax-ws概述JAX-WS2.0的全称为JavaAPIforXML-BasedWebservices(JAX-WS)2.0。JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JAX-RPC2.0标准发布不久后便被重新命名为JAX-WS2.0。JAX-WS2.0是面向Java5的开发Webservices的最新编程标准,它提供了新的编程模型和对以往的JAX-RPC方式的Webservices进行了增强。JAX-WS2.0(JSR224)是Sun新的webservices协议栈,是一个完全基于标准的实现。在binding层,使用的是theJavaArchitectureforXMLBinding(JAXB,JSR222),在parsing层,使用的是theStreamingAPIforXML(StAX,JSR173),同时它还完全支持schema规范。2、Jax-ws准备及工具介绍需要准备JDK1.6涉及工具(JDK自带):wsgen主要用于Server端通过Java类编译成Webservice及相关的wsdl文件wsimport主要用于Client端(调用端)通过wsdl编译出调用Server端的Java文件服务端Jax-ws的WebService定义是通过注解进行的,我们必须在其WebService类的接口上使用@WebService注解进行标记。接口:定义一个接口,定义接口方法。packagecom.self.ws.service;importjavax.jws.WebMethod;importjavax.jws.WebResult;importjavax.jws.WebService;@WebServicepublicinterfaceIBlocInfoService{@WebMethod@WebResult(partName=return)publicStringqueryBlocInfo(Stringrequest);}实现类:实现接口类。packagecom.self.ws.service.impl;importjavax.jws.WebService;importcom.self.gmrs.ecrs.ruleflow.service.ICrCustRateService;importcom.self.gmrs.ecrs.ruleflow.service.support.CrCustRateServiceImpl;importcom.self.ws.service.IBlocInfoService;@WebService(endpointInterface=com.self.ws.service.IBlocInfoService)publicclassBlocInfoServiceImplimplementsIBlocInfoService{privateICrCustRateServiceservice=newCrCustRateServiceImpl();@OverridepublicStringqueryBlocInfo(Stringrequest){Stringresult=;System.out.println(集团客户信息:+request);try{result=service.parseBlocInfo(request);}catch(Exceptione){e.printStackTrace();}returnresult;}}接口和实现类定义完成后,新建一个sun-jaxws.xml文件(名称不能变),放到与web.xml同路径下。sun-jaxws.xml:?xmlversion=1.0encoding=UTF-8?endpointsxmlns==2.0endpointname=BlocInfoServiceimplementation=com.self.ws.service.impl.BlocInfoServiceImplurl-pattern=/service/blocservice//endpointsendpoint节点name自行定义,implementation指向实现类,url-pattern服务url。配置完成sun-jaxws.xml后,配置web.xml文件。需要在web.xml文件中添加监听listenerlistener-classcom.sun.xml.ws.transport.http.servlet.WSServletContextListener/listener-class/listener添加一个servletservletservlet-nameBlocInfoService/servlet-nameservlet-classcom.sun.xml.ws.transport.http.servlet.WSServlet/servlet-class/servletservlet-mappingservlet-nameBlocInfoService/servlet-nameurl-pattern/service/blocservice/url-pattern/servlet-mapping其中,servlet-name与sun-jaxws.xml中的name一致url-pattern与sun-jaxws.xml中的url-pattern一致配置完成后,webservice的即完成了,重新启动tomcat,在浏览器地址栏输入wsdl地址即可。wsdl地址:为应用的端口lsrs应用名称/service/blocservice为sun-jaxws.xml文件的url客户端客户端可以直接使用JDK自带的wsimport命令,即可生成客户端代码。wsimport–keep–pcom.self.ws.clienturlp表示package,生成的客户端代码会放到com.self.ws.client路径下url表示wsdl地址执行完成后,会生成一个接口和一个实现类(不同JDK版本可能生成的文件不一样,但肯定存在一个接口和实现类)。LSService.javaLSService_Service.javapublicstaticLSServiceclientToServerMsg(Stringurl,Stringnamespace,StringlocalPart){QNameqname=newQName(namespace,localPart);LSServiceport=null;try{LSService_Serviceservice=newLSService_Service(newURL(url),qname);port=service.getLSServicePort();}catch(Exceptione){e.printStackTrace();System.out.println(与信贷连接失败!);}returnport;}namespace和localPart可以在实现类找到分布对应targetNamespace和name利用上述方法即可实现webservice链接,并返回接口LSService,该接口包含了所有webservice方法,直接调用即可。【注】教程
本文标题:Jaxws-webservice初级教程
链接地址:https://www.777doc.com/doc-2881712 .html