Ste*_*eod 14 java annotations web-services servlets
我正在使用Java 6,Tomcat 6和Metro.我使用WebService和WebMethod注释来公开我的Web服务.我想获得有关请求的信息.我尝试了以下代码,但wsCtxt始终为null.我必须采取什么步骤,不为WebServiceContext得到空.
换句话说:如何执行以下行来获取wsCtxt的非null值?
MessageContext msgCtxt = wsCtxt.getMessageContext();
@WebService
public class MyService{
@Resource
WebServiceContext wsCtxt;
@WebMethod
public void myWebMethod(){
MessageContext msgCtxt = wsCtxt.getMessageContext();
HttpServletRequest req = (HttpServletRequest)msgCtxt.get(MessageContext.SERVLET_REQUEST);
String clientIP = req.getRemoteAddr();
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*son 11
我建议您将变量从wsCtxt重命名为wsContext,或者将name属性指定给@Resource注释.@Resource上的J2ee教程表明变量的名称用作查找的一部分.我在Glassfish注入不同类型的资源时使用资源注入遇到了同样的问题.
虽然您的正确名称可能不是wsContext.我正在关注这个java技巧.如果您喜欢变量名称wsCtxt,那么在变量声明中使用name属性:
@Resource(name="wsContext") WebServiceContext wsCtxt;
| 归档时间: |
|
| 查看次数: |
41718 次 |
| 最近记录: |