spring - ws Endpoint

@Endpoint
public class UserServiceEndpoint{
 
    @PayloadRoot(localPart="UserRequest",namespace="http://xxx.xxx.xxx/ws")
    public @ResponsePayload UserResponse getUsers(@RequestPayload UserRequest request){
        int userCount=request.getUserCount();
        String targetCompanyId=request.getTargetCompany();
        UserResponse response=new UserResponse();
        List<User> users=new ArrayList<User>();
        for(int i=0;i<userCount;i++){
            User user=new User();
            user.setBirthday(new Date());
            user.setCompanyId(targetCompanyId);
            user.setGender(true);
            user.setUsername("user"+i);
            users.add(user);
        }
        response.setUsers(users);
        return response;
    }
}

Spring-WS提供的Annotation

@Endpoint
表示当前这个类将作为Spring-WS的一个Endpoint,它可以接收特定的用户请求,执行其中的业务方法。

@PayloadRoot(localPart="UserRequest",namespace="http://xxx.xxx.xxx/ws")
表明当前这个getUsers方法支持Webservice以SOAP消息的XML root节点名及namespace来匹配找到该方法。SOAP消息body部分XML节点名为UserRequest,同时采用http://xxx.xxx.xxx/ws作为namespace的SOAP消息,一旦我们的客户端发出的SOAP消息满足上述条件就会执行这里的getUsers方法。


@RequestPayload的Annotation,这就表示这个UserRequest值需要从客户端请求的SOAP消息的Body当中解析出来,解析后的Body部分的XML要反序列化成这里需要的UserRequest对象。最后在这个方法的返回值UserResponse前面我们还添加了一个名为@ResponsePayload的Annotation,表示这个返回值将作为响应的负载返回到Webservice调用客户端。

 Endpoint编写完成之后,接下来我们就可以将上述编写XSD及Endpoint类配置到Spring环境当中。

< context:component-scan base-package = "ws" ></ context:component-scan >
< sws:annotation-driven />


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值