`

webservice CXF总结

阅读更多

 

1.Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。

 


 

 

 

2.

SOAP:

即简单对象访问协议(Simple Object Access Protocol)
它是用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协
XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。
   XML-envelope—(code)-àXML
SOAP

可以运行在任何其他传输协议上

 
 

3.wsdl:

 

就是用机器能阅读的方式提供的一个正式描述文档而基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web Service及其函数、参数和返回值。


 
  命名空间要相同
 

 

 

 

 

 

4.CXF实现WebService:

 

Apache CXF的官方网站如下:
1.先建立新的web project
 


 

2.导入lib包

 

3. 根据wsdl文件反向生成服务端

 

CXF提供了这样的工具----wsdl2java
配置CXF环境变量:
CXF_HOME=E:\Java\webservice\apache-cxf-2.7.15,以及在path中增 %CXF_HOME%/bin
注意:需要jdk 1.7以下,1.8会报错。使用wsdl2java -h可以检测是否成功。
使用cmd打开,到cxf/bin下:


 

 
然后在bin目录下生成代码:
 



 
 

 

然后需要修改一个地方,就是在接口的实现类中把
wsdlLocation="file:/C:/Users/80575749/Desktop/OnePNS/SoapNotification.wsdl“
给删除,不然等会运行是会提示找不到这个wsdl文件
 



 

 

4.把生成的代码复制进项目并创建applicationContext.xml配置文件:




 

注意:ScfMobileSoap.java 其实可以删除

 

添加配置内容

 

<beans xmlns="http://www.springframework.org/schema/beans"  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     xmlns:jaxws="http://cxf.apache.org/jaxws"  
     xsi:schemaLocation="  
 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
 http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">  
   
     <import resource="classpath:META-INF/cxf/cxf.xml" />  
     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />  
     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  
   
     <jaxws:endpoint   id="ScfPccSoapService"   
       implementor="com.soap.ScfPccSoapServiceEndpointImpl"   
       address="/soap" />  
         
 </beans> 

 


 5.添加web.xml:

 



 

<context-param>  
         <param-name>contextConfigLocation</param-name>  
         <param-value>/WEB-INF/applicationContext.xml</param-value>  
     </context-param>  
   
     <listener>  
         <listener-class>  
             org.springframework.web.context.ContextLoaderListener  
         </listener-class>  
     </listener>  
   
     <servlet>  
         <servlet-name>CXFServlet</servlet-name>  
         <servlet-class>  
             org.apache.cxf.transport.servlet.CXFServlet  
         </servlet-class>  
         <load-on-startup>1</load-on-startup>  
     </servlet>  
   
     <servlet-mapping>  
         <servlet-name>CXFServlet</servlet-name>  
         <url-pattern>/services/*</url-pattern>  
     </servlet-mapping>  

 

 

6.部署到Tomcat

 

 

 

5.CXF生成Client:

方法与生成Server类似:

在cmd中输入如下命令:

 生成client代码

 

1. 导入lib包,把生成的java文件复制到client项目内

包与接口与服务端相同(只需要写接口)
 



 

Ps:包可以不相同,但是需要修改applicationContext.xml中的bean定义和接口实现类中的注解:endpointInterface的包路径
 

2.配置applicationContext.xml


 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">

    <bean id="ScfPccSoap" class="com.soap.ScfPccSoapServiceEndpoint" 
          factory-bean="clientFactory" factory-method="create"/>
    
    <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
        <property name="serviceClass" value="com.soap.ScfPccSoapServiceEndpoint"/>
        <property name="address" value="http://localhost:8080/OnePNSServer/services/soap?wsdl"/>
        
    </bean>
      
</beans>

 

 

3.写一个Run类来运行客户端:



 

 


 4.关闭cxf的log Debug

<logger name="org.apache.cxf" level="warn" />

 

5.Use jmeter to test

url:http://ip:port/server name/path/soap?wsdl

把soap协议写在data那里,因为走的也是http协议,所以可以call by manual
 

  • 大小: 13.7 KB
  • 大小: 971 Bytes
  • 大小: 776 Bytes
  • 大小: 131.2 KB
  • 大小: 48 KB
  • 大小: 54.9 KB
  • 大小: 109.1 KB
  • 大小: 12.1 KB
  • 大小: 8.5 KB
  • 大小: 4.7 KB
  • 大小: 26.5 KB
  • 大小: 23.8 KB
  • 大小: 14.3 KB
  • 大小: 8.5 KB
  • 大小: 46.1 KB
  • 大小: 139.4 KB
  • 大小: 1.4 KB
  • 大小: 79.9 KB
  • 大小: 55.2 KB
  • 大小: 40.9 KB
  • 大小: 9.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics