`
lg_asus
  • 浏览: 185825 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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,然后重写里面相应的方法。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics