cxf发布WS,如何在pojo中得到web.xml中配置

用cxf直接将一个pojo作为WS进行发布,如果想在pojo中读取container的配置参数,由于pojo和Servlet无半点关系,这里借助WebServiceContext,代码:


public class HelloWorld implements IHelloWorld {

@Resource
private WebServiceContext context;

@Override
public String say(String name) {
ServletContext servletContext = (ServletContext)context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
System.out.println(servletContext.getInitParameter("loc"));//loc是web.xml中的<context-param>
System.out.println(servletContext.getInitParameter("loc2"));//loc2是web.xml单独为Servlet配置的<init-param>
System.out.println("================");
try {
System.out.println(this.getClass().getResource("/").toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
}
return "your name is "+name;
}


定义一个WebServiceContext变量,container会自动注入,因此可以直接使用。

代码参考: http://stackoverflow.com/questions/261348/how-can-i-access-the-servletcontext-from-within-a-jax-ws-web-service
同时感谢群里的tank大牛。

但这里有个问题:就是只能取<context-param>中的参数,单独为<servlet>配置的参数取不到。

其实还有一个解决方法:继承CXFServlet,然后重写里面相应的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值