webService的常见的调用和发布

1.使用wsimport.exe生成(也可以用cxf)源代码,通过jdk的方式去调用

            首先我们要知道,wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码.当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成Java代码。服务器端用什么写的并不重要。

           其次就是了解wsimport的使用方法,其参数如下:

wsimport.exe位于JAVA_HOME\bin目录下.

常用参数为:

-d<目录>  - 将生成.class文件。默认参数。

-s<目录>   - 将生成.java文件。

-p<生成的新包名> -将生成的类,放于指定的包下,自定义包结构。

(wsdlurl) - http://server:port/service?wsdl,必须的参数。

示例:

C:/> wsimport –s . http://192.168.0.100/one?wsdl

C:/> wsimport –s . –pcom.sitech.web  http://192.168.0.100/one?wsdl

注意:-s不能分开,-s后面有个小点,用于指定源代码生成的目录。点即当前目录。

如果使用了-s参数则会在目录下生成两份代码,一份为.class代码。一份为.java代码。

.class代码,可以经过打包以后使用。.java代码可以直接Copy到我们的项目中运行。

代码生成示例:(jdk生成代码不适用1.2,cxf生成时注意用 wsdl2java -autoNameResolution wsdl地址   来重命名

webService的常见的调用和发布_第1张图片


2.使用jdk的方式去调用。

webService的常见的调用和发布_第2张图片


3.webservice的报文拦截打印。

    3.1在项目中引入拦截配置文件。

          如Resources下的配置拦截文件,命名为:webServiceLogHandlers.xml,添加如下内容:



	
		
			authHandler
	         
com.ztesoft.jdkPackage.logPackage.SOAPLoggingHandler

		
	

   

    3.2在生成文件的接口中引入webServiceLogHandlers.xml文件,进行接口拦截。


webService的常见的调用和发布_第3张图片

        

        3.3拦截报文打印的实现(webServiceLogHandlers.xml中配置拦截的类实现

webService的常见的调用和发布_第4张图片

4.httpClient的方式调用

      4.1Eclipse中输入WebService请求报文

webService的常见的调用和发布_第5张图片

     4.2报文的查看

webService的常见的调用和发布_第6张图片

     4.3代码调用示例(注意DOM4J导包解析,也可以用DOM等方法解析)

webService的常见的调用和发布_第7张图片

webService的常见的调用和发布_第8张图片

5.cxf发布WebService

Spring MVC是通过DispatcherServlet来加载Spring配置文件的,因此不需要在web.xml中配置ContextLoaderListener。但是CXF却需要通过ContextLoaderListener来加载Spring。

这样就产生了一个矛盾,如果不配置ContextLoaderListener,CXF就无法正常使用。但如果配置ContextLoaderListener,又会造成Spring的重复加载(DispatcherServlet一次,ContextLoaderListener一次)

在网上查了一下资料,只看到一个国外的程序员提出不配置ContextLoaderListener,通过写一个CXFController,来替代默认的CXFServlet。但是这种HACK的方式总是不太好

 

通过ContextLoaderListener来加载cxf.xml配置文件的方式。


   5.1依赖的添加


			org.apache.cxf
			cxf-rt-frontend-jaxws
			3.0.3
		
		
			org.apache.cxf
			cxf-rt-transports-http
			3.0.3
		
		
			org.apache.cxf
			cxf-rt-frontend-jaxrs
			3.0.3
		
     5.2接口编写

webService的常见的调用和发布_第9张图片

     5.3实现编写

webService的常见的调用和发布_第10张图片

注意:

@WebService:标记表示该接口是一个WebService服务;“

@SOAPBinding(style=Style.RPC):表示遵循远程过程调用协议

@WebMethod”表示表示以下方法为WebService服务中的方法,exclude=true表示该方法不被发布出去.“

@WebParam(name="username")”表示方法中的参数,username属性限制了参数的名称,若没有指定该属性,参数将被重命名。


     5.4配置application-cxf-server.xml文件



	
	
	
	
	
	
	
	

   

     5.5通过web.xml文件加载application-cxf-server.xml,这种方式不用重写CXFServlet加载方式。

webService的常见的调用和发布_第11张图片

    

       5.6打开浏览器输入:http://localhost/ws/userService?wsdl查看发布成功

webService的常见的调用和发布_第12张图片

你可能感兴趣的:(javaSE基础)