日期:2014-05-16  浏览次数:20807 次

【转】Apache CXF入门范例以及对传递List<Map>类型的疑惑

转自:http://icecrystal.iteye.com/blog/532743

?

在选择WebService框架的过程中,偶最终选择了Apache CXF,純粹伿諟銦爲听说它与Spring的无缝整合

想当初用Axis的时候,因为没有太好的办法让Spring能够集成Axis,只好平白无故地多出一个WebService代理类,让偶的感觉很是不爽

?

偶要在此记载一下CXF的一些入门知识

首珗,倌網哋址諟http://cxf.apache.org/,里面可以找到User's Guide和download地址,偶的版本是目前最新的

apache-cxf-2.2.5

?

先来做一个最简单的入门级别例子吧,也就是经典的HelloWord

Server端代码

?? WebService接口HelloService.java

Java代码 复制代码
  1. package?cfx.server; ??
  2. ??
  3. import?javax.jws.WebMethod; ??
  4. import?javax.jws.WebParam; ??
  5. import?javax.jws.WebService; ??
  6. ??
  7. @WebService??
  8. public?interface?HelloService?{ ??
  9. ????@WebMethod??
  10. ????String?sayHi(@WebParam?String?name); ??
  11. }??
package cfx.server;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface HelloService {
	@WebMethod
	String sayHi(@WebParam String name);
}

?实现类HelloServiceImpl.java

Java代码 复制代码
  1. public?class?HelloServiceImpl?implements?HelloService?{ ??
  2. ????public?String?sayHi(String?name)?{ ??
  3. ????????System.out.println("HelloServiceImpl.sayHi?called"); ??
  4. ????????return?"Hello"+name; ??
  5. }??
public class HelloServiceImpl implements HelloService {
	public String sayHi(String name) {
		System.out.println("HelloServiceImpl.sayHi called");
		return "Hello"+name;
}

? WebService配置文件:cxf-servlet.xml(可放置于WEB-INF目录下)

Xml代码 复制代码