CXF-03:使用CXF处理 JavaBean 式的复合类型和 List 集合类型的形参和返回值

本文介绍如何在CXF中处理JavaBean复合类型及List集合作为形参和返回值的方法。通过代码示例展示增加此类方法、生成客户端代码、修改执行代码的过程,并强调了CXF对于特定类型如Map的处理限制。同时,提到了服务端端口号的设置和对读者的鼓励。
摘要由CSDN通过智能技术生成

有了 CXF-01、CXF-02 的铺垫,我们开始更深一步的探索 CXF 的秘密,可以直接按照下面的代码进行更改:

         * 当形参、返回值的类型是String、基本数据类型时,CXF可以处理;
         * 当形参、返回值的类型是JavaBean式的复合类、List集合、数组等时,CXF可以处理
         * 还有一些像 Map、非JavaBean式的复合类,CXF不可以处理;

         * 代码有时比语言更犀利,在代码中前行,在代码中享受汲取的乐趣:

         

         * 1 . 增加一个形参、返回值的类型是JavaBean式的复合类、List集合、数组等的方法

import java.util.List;
import javax.jws.WebService;
import org.fjava.cxf.model.Food;
import org.fjava.cxf.model.User;
@WebService//J2EE文档里查看WebService
public interface HelloWorld {
	//返回的String类型
	String sayHello(String name);
	//这个方法的形参和返回值都是比较复杂的类型,User对象是没有的
	List<Food> getFoodsByUser(User user);
}
import java.util.Date;
import java.util.List;
import javax.jws.WebService;
import org.fjava.cxf.model.Food;
import org.fjava.cxf.model.User;
import org.fjava.cxf.ws.HelloWorld;
import org.fjava.cxf.service.UserService;
import org.fjava.cxf.service.UserServiceImpl;
@WebService(endpointInterface="org.fjava.cxf.ws.HelloWorld", serviceName="HelloWorldWs")  
//endpointInterface=""表示实现的接口  serviceName是wsdl2java或其他语言后的文件名,可以不和HelloWorldWs相同
public class HelloWorldWs implements HelloWorld {
	@Override
	public String sayHello(String name) {
		return "Hello ! " + name + ",您好" + "现在时间是:" + new Date();
	}
	@Override
	public List<Food> getFoodsByUser(User user) {
		// 在实际的项目中,Web Service组件自己并不会去实现业务功能,交给业务逻辑组件去实现
		// 它只是调用业务逻辑组件的方法来暴露Web Service
		UserService userService = new UserServiceImpl();
		return userService.getFoodsByUser(user);
	}
}
         * 2 . 编写  JavaBean 在 User 里添加了构造方法
public class Foo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值