一个CXF集成SPRING的WEBSERVICE完整实例


    

一个CXF集成SPRING的WEBSERVICE完整实例


1 首先准备以下JAR包

  1. activation.jar  
  2. commons-logging-1.1.1.jar  
  3. cxf-2.5.6.jar  
  4. jaxb-api-2.2.1.jar  
  5. jaxb-impl-2.1.3.jar  
  6. jaxws-api-2.2.8.jar  
  7. neethi-3.0.2.jar  
  8. ow2-jws-2.0-spec-1.0.11.jar  
  9. spring-aop-3.0.5.RELEASE.jar  
  10. spring-asm-3.0.5.RELEASE.jar  
  11. spring-beans-3.0.5.RELEASE.jar  
  12. spring-context-3.0.5.RELEASE.jar  
  13. spring-context-support-3.0.5.RELEASE.jar  
  14. spring-core-3.0.5.RELEASE.jar  
  15. spring-expression-3.0.5.RELEASE.jar  
  16. spring-oxm-3.0.5.RELEASE.jar  
  17. spring-web-3.0.5.RELEASE.jar  
  18. spring-ws-core-2.0.2.RELEASE.jar  
  19. spring-ws-security-2.0.2.RELEASE.jar  
  20. spring-xml-1.5.9.jar  
  21. stax-api-1.0.jar  
  22. stax2-api-3.1.1.jar  
  23. webservices-api-2.2.0-1.jar  
  24. webservices-extra-2.1-20.jar  
  25. woodstox-core-asl-4.1.2.jar  
  26. ws-test.jar  
  27. wsdl4j-1.6.2.jar  
  28. wss4j-1.6.7.jar  
  29. xmlschema-core-2.0.3.jar  
activation.jar
commons-logging-1.1.1.jar
cxf-2.5.6.jar
jaxb-api-2.2.1.jar
jaxb-impl-2.1.3.jar
jaxws-api-2.2.8.jar
neethi-3.0.2.jar
ow2-jws-2.0-spec-1.0.11.jar
spring-aop-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-context-support-3.0.5.RELEASE.jar
spring-core-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring-oxm-3.0.5.RELEASE.jar
spring-web-3.0.5.RELEASE.jar
spring-ws-core-2.0.2.RELEASE.jar
spring-ws-security-2.0.2.RELEASE.jar
spring-xml-1.5.9.jar
stax-api-1.0.jar
stax2-api-3.1.1.jar
webservices-api-2.2.0-1.jar
webservices-extra-2.1-20.jar
woodstox-core-asl-4.1.2.jar
ws-test.jar
wsdl4j-1.6.2.jar
wss4j-1.6.7.jar
xmlschema-core-2.0.3.jar

我的环境是IBMJDK5,因而有一些xml及webservice包是不存在的,就会比在SUN JDK的环境中要多一些JAR包,如ow2-jws-2.0-spec-1.0.11.jar,webservices-api-2.2.0-1.jar,jaxws-api-2.2.8.jar等,根据实际情况进行选择了。

2 编写服务端
2.1 新建一个空的WEB工程,我这里命名为ws_test,将其放置于TOMCAT的webapps目录;
2.2 然后在ws_test下面建立WEB-INF文件夹,并在WEB-INF文件夹中建立目录lib;
2.3 将上面提到的JAR包都拷贝到lib目录中;
2.4 在WEB-INF目录中新建web.xml文件,并将如下内容放于其中:

  1. <?xml version="1.0" encoding="ISO-8859-1"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"  
  3.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  5.    version="2.5">   
  6.     <description>  
  7.       Web Service Test.  
  8.     </description>      
  9.     <display-name>Web Service Test</display-name>      
  10.         <listener>  
  11.             <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  12.         </listener>  
  13.         <context-param>  
  14.             <param-name>contextConfigLocation</param-name>  
  15.             <param-value>classpath*:applicationContext-server.xml</param-value>  
  16.         </context-param>        
  17.         <listener>  
  18.             <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
  19.         </listener>         
  20.         <servlet>  
  21.             <servlet-name>CXFService</servlet-name>  
  22.             <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  
  23.         </servlet>          
  24.         <servlet-mapping>  
  25.             <servlet-name>CXFService</servlet-name>  
  26.             <url-pattern>/*</url-pattern>  
  27.         </servlet-mapping>  
  28. </web-app>  
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 
    <description>
      Web Service Test.
    </description>    
    <display-name>Web Service Test</display-name>    
		<listener>
		    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
		</listener>
		<context-param>
		    <param-name>contextConfigLocation</param-name>
		    <param-value>classpath*:applicationContext-server.xml</param-value>
		</context-param>		
		<listener>
		    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
		</listener>		
		<servlet>
		    <servlet-name>CXFService</servlet-name>
		    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
		</servlet> 		
		<servlet-mapping>
		    <servlet-name>CXFService</servlet-name>
		    <url-pattern>/*</url-pattern>
		</servlet-mapping>
</web-app>


这个配置文件是WEB应用的核心配置文件,如Listener的配置,servlet请求的映射等,这里并配置了启动的时候加载SPRING,并初使化我们的WEBSERVICE服务端配置文件。
2.5 在ECLIPSE中新建JAVA工程,并在工程中新建lib目录,将上面提到的JAR包全部放到lib目录,并将他们全部加入到classpath中;
2.6 增加服务端的JAVA类:

  1. package com.use.test.ws.entity;  
  2. public class User {  
  3.     int id ;  
  4.     String name = null;  
  5.     String address = null;    
  6.     String email = null;  
  7.     public int getId() {  
  8.         return id;  
  9.     }  
  10.     public void setId(int id) {  
  11.         this.id = id;  
  12.     }  
  13.     public String getName() {  
  14.         return name;  
  15.     }  
  16.     public void setName(String name) {  
  17.         this.name = name;  
  18.     }     
  19.     public String getAddress() {  
  20.         return address;  
  21.     }  
  22.     public void setAddress(String address) {  
  23.         this.address = address;  
  24.     }     
  25.     public String getEmail() {  
  26.         return email;  
  27.     }  
  28.     public void setEmail(String email) {  
  29.         this.email = email;  
  30.     }         
  31. }  
package com.use.test.ws.entity;
public class User {
	int id ;
	String name = null;
	String address = null;	
	String email = null;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}	
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}		
}


  1. package com.use.test.ws.server;  
  2.    
  3. import javax.jws.WebParam;  
  4.    
  5. import javax.jws.WebService;  
  6.    
  7. import javax.jws.soap.SOAPBinding;  
  8.    
  9. import javax.jws.soap.SOAPBinding.Style;  
  10.    
  11. import com.use.test.ws.entity.User;  
  12.    
  13. /** 
  14.  * <b>function:</b>定制客户端请求WebService所需要的接口 
  15.  */  
  16.    
  17. @WebService  
  18.    
  19. @SOAPBinding(style = Style.RPC)  
  20.    
  21. public interface IService {  
  22.     public User getUserByName(@WebParam(name = "name") String name);  
  23.     public void setUser(User user);  
  24. }  
package com.use.test.ws.server;
 
import javax.jws.WebParam;
 
import javax.jws.WebService;
 
import javax.jws.soap.SOAPBinding;
 
import javax.jws.soap.SOAPBinding.Style;
 
import com.use.test.ws.entity.User;
 
/**
 * <b>function:</b>定制客户端请求WebService所需要的接口
 */
 
@WebService
 
@SOAPBinding(style = Style.RPC)
 
public interface IService {
    public User getUserByName(@WebParam(name = "name") String name);
    public void setUser(User user);
}


  1. package com.use.test.ws.server;  
  2.    
  3. import java.util.Date;  
  4. import javax.jws.WebParam;  
  5. import javax.jws.WebService;  
  6. import javax.jws.soap.SOAPBinding;  
  7. import javax.jws.soap.SOAPBinding.Style;  
  8. import com.use.test.ws.entity.User;  
  9.    
  10. /** 
  11.  * <b>function:</b> WebService传递复杂对象,如JavaBean、Array、List、Map等 
  12.  */  
  13. @WebService  
  14. @SOAPBinding(style = Style.RPC)  
  15. @SuppressWarnings("deprecation")  
  16. public class TestService implements IService {  
  17.     public User getUserByName(@WebParam(name = "name") String name) {  
  18.         User user = new User();  
  19.         user.setId(new Date().getSeconds());  
  20.         user.setName(name);  
  21.         user.setAddress("china");  
  22.         user.setEmail(name + "@test.com");  
  23.         return user;  
  24.     }  
  25.     public void setUser(User user) {  
  26.         System.out.println("############Server setUser###########");  
  27.         System.out.println("setUser:" + user);  
  28.     }  
  29. }  
package com.use.test.ws.server;
 
import java.util.Date;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.use.test.ws.entity.User;
 
/**
 * <b>function:</b> WebService传递复杂对象,如JavaBean、Array、List、Map等
 */
@WebService
@SOAPBinding(style = Style.RPC)
@SuppressWarnings("deprecation")
public class TestService implements IService {
    public User getUserByName(@WebParam(name = "name") String name) {
        User user = new User();
        user.setId(new Date().getSeconds());
        user.setName(name);
        user.setAddress("china");
        user.setEmail(name + "@test.com");
        return user;
    }
    public void setUser(User user) {
        System.out.println("############Server setUser###########");
        System.out.println("setUser:" + user);
    }
}


2.7 在src目录下建立applicationContext-client.xml,并放入以下内容:

<span style="color: rgb(9, 144, 0);"><span style="color: rgb(0, 0, 0); font-weight: bold;"></span></span><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><strong>[html]</strong> <a target=_blank title="view plain" class="ViewSource" href="http://blog.csdn.net/fenglibing/article/details/16842587#">view plain</a><span data-mod="popu_168"> <a target=_blank title="copy" class="CopyToClipboard" href="http://blog.csdn.net/fenglibing/article/details/16842587#">copy</a></span><span data-mod="popu_169"> <a target=_blank title="print" class="PrintSource" href="http://blog.csdn.net/fenglibing/article/details/16842587#">print</a></span><a target=_blank title="?" class="About" href="http://blog.csdn.net/fenglibing/article/details/16842587#">?</a></div></div><ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span class="tag-name">span</span><span> </span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">"http://www.w3.org/1999/xhtml"</span><span class="tag">></span><span class="tag"><</span><span class="tag-name">span</span><span> </span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">"http://www.w3.org/1999/xhtml"</span><span class="tag">></span><span class="tag"><?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span class="tag">?></span><span>  </span></span></li><li><span><span class="tag"><</span><span class="tag-name">beans</span><span> </span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">"http://www.springframework.org/schema/beans"</span><span>  </span></span></li><li class="alt"><span>    <span class="attribute">xmlns:context</span><span>=</span><span class="attribute-value">"http://www.springframework.org/schema/context"</span><span>  </span></span></li><li><span>    <span class="attribute">xmlns:jaxws</span><span>=</span><span class="attribute-value">"http://cxf.apache.org/jaxws"</span><span>  </span></span></li><li class="alt"><span>    <span class="attribute">xmlns:xsi</span><span>=</span><span class="attribute-value">"http://www.w3.org/2001/XMLSchema-instance"</span><span>  </span></span></li><li><span>    <span class="attribute">xsi:schemaLocation</span><span>="http://www.springframework.org/schema/beans  </span></span></li><li class="alt"><span>    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  </span></li><li><span>    http://www.springframework.org/schema/context  </span></li><li class="alt"><span>    http://www.springframework.org/schema/context/spring-context-3.0.xsd  </span></li><li><span>    http://cxf.apache.org/jaxws   </span></li><li class="alt"><span>    http://cxf.apache.org/schemas/jaxws.xsd"<span class="tag">></span><span>      </span></span></li><li><span>    <span class="tag"><</span><span class="tag-name">import</span><span> </span><span class="attribute">resource</span><span>=</span><span class="attribute-value">"classpath:META-INF/cxf/cxf.xml"</span><span class="tag">/></span><span>  </span></span></li><li class="alt"><span>    <span class="tag"><</span><span class="tag-name">import</span><span> </span><span class="attribute">resource</span><span>=</span><span class="attribute-value">"classpath:META-INF/cxf/cxf-extension-soap.xml"</span><span class="tag">/></span><span>  </span></span></li><li><span>    <span class="tag"><</span><span class="tag-name">import</span><span> </span><span class="attribute">resource</span><span>=</span><span class="attribute-value">"classpath:META-INF/cxf/cxf-servlet.xml"</span><span class="tag">/></span><span>     </span></span></li><li class="alt"><span>    <span class="tag"><</span><span class="tag-name">bean</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"userServiceBean"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"com.use.test.ws.server.TestService"</span><span class="tag">/></span><span>         </span></span></li><li><span>    <span class="tag"><</span><span class="tag-name">bean</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"inMessageInterceptor"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.cxf.interceptor.LoggingInInterceptor"</span><span class="tag">/></span><span>    </span></span></li><li class="alt"><span>    <span class="tag"><</span><span class="tag-name">bean</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"outLoggingInterceptor"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.cxf.interceptor.LoggingOutInterceptor"</span><span class="tag">/></span><span>  </span></span></li><li><span>    <span class="tag"><</span><span class="tag-name">jaxws:server</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"userService"</span><span> </span><span class="attribute">serviceClass</span><span>=</span><span class="attribute-value">"com.use.test.ws.server.IService"</span><span> </span><span class="attribute">address</span><span>=</span><span class="attribute-value">"/Users"</span><span class="tag">></span><span>  </span></span></li><li class="alt"><span>        <span class="tag"><</span><span class="tag-name">jaxws:serviceBean</span><span class="tag">></span><span>  </span></span></li><li><span>            <span class="tag"><</span><span class="tag-name">ref</span><span> </span><span class="attribute">bean</span><span>=</span><span class="attribute-value">"userServiceBean"</span><span class="tag">/></span><span>  </span></span></li><li class="alt"><span>        <span class="tag"></</span><span class="tag-name">jaxws:serviceBean</span><span class="tag">></span><span>  </span></span></li><li><span>        <span class="tag"><</span><span class="tag-name">jaxws:inInterceptors</span><span class="tag">></span><span>  </span></span></li><li class="alt"><span>            <span class="tag"><</span><span class="tag-name">ref</span><span> </span><span class="attribute">bean</span><span>=</span><span class="attribute-value">"inMessageInterceptor"</span><span class="tag">/></span><span>  </span></span></li><li><span>        <span class="tag"></</span><span class="tag-name">jaxws:inInterceptors</span><span class="tag">></span><span>  </span></span></li><li class="alt"><span>        <span class="tag"><</span><span class="tag-name">jaxws:outInterceptors</span><span class="tag">></span><span>  </span></span></li><li><span>            <span class="tag"><</span><span class="tag-name">ref</span><span> </span><span class="attribute">bean</span><span>=</span><span class="attribute-value">"outLoggingInterceptor"</span><span class="tag">/></span><span>  </span></span></li><li class="alt"><span>        <span class="tag"></</span><span class="tag-name">jaxws:outInterceptors</span><span class="tag">></span><span>  </span></span></li><li><span>    <span class="tag"></</span><span class="tag-name">jaxws:server</span><span class="tag">></span><span>  </span></span></li><li class="alt"><span><span class="tag"></</span><span class="tag-name">beans</span><span class="tag">></span><span>  </span></span></li><li><span><span class="tag"></</span><span class="tag-name">span</span><span class="tag">></span><span class="tag"></</span><span class="tag-name">span</span><span class="tag">></span><span class="tag"><</span><span class="tag-name">span</span><span> </span><span class="attribute">style</span><span>=</span><span class="attribute-value">"color: rgb(9, 144, 0);"</span><span class="tag">></span><span class="tag"><</span><span class="tag-name">span</span><span> </span><span class="attribute">style</span><span>=</span><span class="attribute-value">"color: rgb(0, 0, 0); font-weight: bold;"</span><span class="tag">></span><span class="tag"><</span><span class="tag-name">span</span><span> </span><span class="attribute">style</span><span>=</span><span class="attribute-value">"color: rgb(0, 0, 0); font-weight: bold;"</span><span class="tag">></span><span class="tag"></</span><span class="tag-name">span</span><span class="tag">></span><span class="tag"></</span><span class="tag-name">span</span><span class="tag">></span><span class="tag"></</span><span class="tag-name">span</span><span class="tag">></span><span>  </span></span></li></ol></div><pre class="html" style="display: none;" name="code"><span xmlns="http://www.w3.org/1999/xhtml"><span xmlns="http://www.w3.org/1999/xhtml"><?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.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"/>	
	<bean id="userServiceBean" class="com.use.test.ws.server.TestService"/>		
	<bean id="inMessageInterceptor" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>  
	<bean id="outLoggingInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
	<jaxws:server id="userService" serviceClass="com.use.test.ws.server.IService" address="/Users">
	    <jaxws:serviceBean>
	        <ref bean="userServiceBean"/>
	    </jaxws:serviceBean>
	    <jaxws:inInterceptors>
        	<ref bean="inMessageInterceptor"/>
    	</jaxws:inInterceptors>
	    <jaxws:outInterceptors>
	        <ref bean="outLoggingInterceptor"/>
	    </jaxws:outInterceptors>
	</jaxws:server>
</beans>
</span></span><span style="color: rgb(9, 144, 0);"><span style="color: rgb(0, 0, 0); font-weight: bold;"><span style="color: rgb(0, 0, 0); font-weight: bold;"></span></span></span>
 
  

2.8 将建立的JAVA工程导出jar包,只导出src下面的内容即,并将这个jar包放到上面的TOMCAT工程中的ws_test/WEB-INF/lib目录下,并启动TOMCAT服务器;
2.9 启动成功后,此时访问URL:http://localhost:8080/ws_test/Users?wsdl,应该会看到WSDL的输出。

3 编写客户端
3.1 独立的客户端请求类

  1. package com.use.test.ws.client;  
  2. import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;  
  3. import com.use.test.ws.entity.User;  
  4. import com.use.test.ws.server.IService;  
  5. public class TestClient {  
  6.     public static void main(String[] args) {  
  7.         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  
  8.         factory.setServiceClass(IService.class);  
  9.         factory.setAddress("http://localhost:8080/ws_test/Users");  
  10.         IService service = (IService) factory.create();  
  11.         System.out.println("#############Client getUserByName##############");  
  12.         User user = service.getUserByName("hoojo");  
  13.         System.out.println(user);  
  14.         user.setAddress("China-Guangzhou");  
  15.         service.setUser(user);  
  16.     }  
  17. }  
package com.use.test.ws.client;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.use.test.ws.entity.User;
import com.use.test.ws.server.IService;
public class TestClient {
    public static void main(String[] args) {
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setServiceClass(IService.class);
        factory.setAddress("http://localhost:8080/ws_test/Users");
        IService service = (IService) factory.create();
        System.out.println("#############Client getUserByName##############");
        User user = service.getUserByName("hoojo");
        System.out.println(user);
        user.setAddress("China-Guangzhou");
        service.setUser(user);
    }
}


点击右键就可以运行这个类。
3.2 与SPRING的集成,首先需要在src下面建立配置文件applicationContext-client.xml,将输入以下内容:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:jaxws="http://cxf.apache.org/jaxws"  
  5.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  8.     http://www.springframework.org/schema/context  
  9.     http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  10.     http://cxf.apache.org/jaxws  
  11.     http://cxf.apache.org/schemas/jaxws.xsd">  
  12.     <import resource="classpath:META-INF/cxf/cxf.xml"/>  
  13.     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>  
  14.     <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>  
  15.     <jaxws:client id="userWsClient" serviceClass="com.use.test.ws.server.IService" address="http://localhost:8080/ws_test/Users"/>  
  16. </beans>  
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.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:client id="userWsClient" serviceClass="com.use.test.ws.server.IService" address="http://localhost:8080/ws_test/Users"/>
</beans>


3.3 建立JAVA类

  1. package com.use.test.ws.client;  
  2.    
  3. import org.springframework.context.ApplicationContext;  
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  5. import com.use.test.ws.entity.User;  
  6. import com.use.test.ws.server.IService;  
  7.    
  8. /** 
  9.  * <b>function:</b>请求Spring整合CXF的WebService客户端 
  10.  */  
  11.    
  12. public class SpringUsersWsClient {  
  13.     public static void main(String[] args) {  
  14.         ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-client.xml");  
  15.         IService service = ctx.getBean("userWsClient", IService.class);  
  16.         System.out.println("#############Client getUserByName##############");  
  17.         User user = service.getUserByName("hoojo");  
  18.         System.out.println(user);  
  19.         user.setAddress("China-Guangzhou");  
  20.         service.setUser(user);  
  21.     }  
  22. }  
package com.use.test.ws.client;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.use.test.ws.entity.User;
import com.use.test.ws.server.IService;
 
/**
 * <b>function:</b>请求Spring整合CXF的WebService客户端
 */
 
public class SpringUsersWsClient {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-client.xml");
        IService service = ctx.getBean("userWsClient", IService.class);
        System.out.println("#############Client getUserByName##############");
        User user = service.getUserByName("hoojo");
        System.out.println(user);
        user.setAddress("China-Guangzhou");
        service.setUser(user);
    }
}

直接运行这个类就OK了。

4 说明 转载于http://blog.csdn.net/fenglibing/article/details/16842587

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值