本文主要是介绍maven+cxf+spring,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.首先创建一个maven项目
2.构建maven项目结构
3.添加maven依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.webservice</groupId><artifactId>maven-cxf</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>maven-cxf Maven Webapp</name><url>http://maven.apache.org</url><properties><cxf.version>2.2.3</cxf.version><spring.version>4.1.4.RELEASE</spring.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>${cxf.version}</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http</artifactId><version>${cxf.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.32</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency></dependencies><build><finalName>maven-cxf</finalName></build>
</project>
4.创建接口
package service;import bean.Order;import javax.jws.WebParam;
import javax.jws.WebService;
import java.util.List;@WebService
public interface IRemoteService {public String showRemoteMessage(@WebParam(name = "arg0") String message);public String addOrder(List<Order> orders);
}
5.创建实现类
package serviceImpl;import bean.Order;
import com.alibaba.fastjson.JSONArray;
import service.IRemoteService;import javax.jws.WebService;
import java.util.List;@WebService(endpointInterface = "service.IRemoteService")
public class RemoteServiceImpl implements IRemoteService{public String showRemoteMessage(String message) {return "You message is "+ message;}public String addOrder(List<Order> orders) {return JSONArray.toJSONString(orders,true);}
}
6.在resources文件下添加Spring-context.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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://cxf.apache.org/jaxwshttp://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="remoteServiceEndPoint" implementor="serviceImpl.RemoteServiceImpl" address="/RemoteService"></jaxws:endpoint>
</beans>
7.在web.xml中将xml添加进去
<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:Spring-context.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>
</web-app>
8.添加到tomcat,并启动
9.在resources文件下添加spring-client.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this work for additional informationregarding copyright ownership. The ASF licenses this fileto you under the Apache License, Version 2.0 (the"License"); you may not use this file except in compliancewith the License. You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing,software distributed under the License is distributed on an"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANYKIND, either express or implied. See the License for thespecific language governing permissions and limitationsunder the License.
-->
<!-- START SNIPPET: beans -->
<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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://cxf.apache.org/jaxwshttp://cxf.apache.org/schema/jaxws.xsd"><bean id="client" class="service.IRemoteService"factory-bean="clientFactory" factory-method="create"/><bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"><property name="serviceClass" value="service.IRemoteService"/><property name="address" value="http://localhost:8080/services/RemoteService"/></bean>
</beans><!-- END SNIPPET: beans -->
9.添加测试类测试
package test;import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import service.IRemoteService;public class ServiceClient {@Testpublic void testClient(){// START SNIPPET: clientClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"client-bean.xml"});IRemoteService re = (IRemoteService) context.getBean("client");String response = re.showRemoteMessage("hello");System.out.println("Response: " + response);System.exit(0);// END SNIPPET: client}
}
11.测试结构如下
这篇关于maven+cxf+spring的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!