星期六, 9月 22, 2007

CXF REST transport notes


搞了一整天,總算試出CXF的REST介面可以運作的設定模式,雖然wrapped mode一直搞不定,不過,總算搞定unwrapped mode的設定方式。主要必需注意的事情是:


  • interface上一定要有@WebService annotation

  • 在需要傳遞的參數上必需要使用 @HttpResource 指定對應的uri pattern

  • 因為是unwrapped mode, 接受的參數都必需要用VTO (value transfer object)包起來,如同CXF 文件Java REST annotation中的範例一樣

  • CXF 會根據 URI template中的參數名稱{param}將參數對於到VTO中的property。



範例 (interface), spring 設定中的 serviceFactory必需設定unwrapped = false


@WebService(targetNamespace="http://employee.some.company.com")
public interface EmployeeService {
@Get
@HttpResource(location="/employees/{serial}")
@WebResult(name="Employee")
Employee getEmployee(GetEmployee getEmployee);
}