1.添加CXF相关的依赖
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-common</artifactId>
<version>2.5.4</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-core</artifactId>
<version>2.6.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
2.下载apache-cxf-2.6.2.zip文件,解压,在cmd命令下,进入../apache-cxf-2.6.2/bin 目录.输入命令,如下图:
-d . 代表生成的文件输出目录, . 代表当前目录(注意有个点),-p com.xmg.cxf 表示生成的文件是按com.xmg.cxf 目录存放的.最后一个参数就是wsdl地址
生成的文件如下:
ICalculateService.java保留,其他文件都可以删除.然后放入项目中.
注意:把ICalculateService.java里面 @XmlSeeAlso({ObjectFactory.class})这行代码删掉
3.在application.xml中配置这个服务调用对象
<bean id="subFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com.xmg.cxfspring.ICalculateService" />
<property name="address"
value="http://localhost/ws/calculateService?wsdl" />
</bean>
<bean id="subService" class="com.xmg.cxfspring.ICalculateService"
factory-bean="subFactory" factory-method="create" />
4.在Controller或者需要调用的地方注入subService的这个bean就可以了.
package cn.xmg.crm.controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.xmg.cxfspring.ICalculateService;
@Controller
public class TestController {
@Resource(name="subService")
private ICalculateService service;
@RequestMapping("testservice")
public void test(){
System.out.println(service.add(5, 7));
}
}
基于maven在spring中配置CXF:http://blog.csdn.net/qq3516744991/article/details/50834384