我们在做企业开发的时候,也许会使用到其他公司的WebService服务
1.新建工程,导入spring 包与cxf-2.7.17包,spring的配置略。
2.配置CXF客户端
<?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:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:cxf="http://cxf.apache.org/core"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/core
http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- 导入cxf xml配置 -->
<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="authInterceptor" class="com.skymr.hello.ws.interceptor.AuthInterceptor">
<constructor-arg index="0" value="admin"></constructor-arg>
<constructor-arg index="1" value="admin"></constructor-arg>
</bean>
<jaxws:client id="helloWorld" serviceClass="com.skymr.hello.ws.HelloWorld" address="http://localhost:8080/spring_cxf/doWS/HelloWorld">
<!-- 拦截器配置 -->
<jaxws:outInterceptors>
<ref bean="authInterceptor"/>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
</jaxws:outInterceptors>
</jaxws:client>
</beans>
3.测试
package com.skymr.hello.ws.test;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.skymr.hello.ws.HelloWorld;
public class TestMain {
private HelloWorld helloWorld;
@Before
public void beforeTest(){
ApplicationContext context = new ClassPathXmlApplicationContext("config/spring-config.xml");
helloWorld = (HelloWorld)context.getBean("helloWorld");
}
@Test
public void testClient(){
System.out.println(helloWorld.sayHello("skymr"));
}
}
附jaxws配置 http://cxf.apache.org/docs/jax-ws-configuration.html