【问题标题】:WebServiceContext getting null in Stateless web service deployed on WeblogicWebServiceContext 在 Weblogic 上部署的无状态 Web 服务中为空
【发布时间】:2014-09-22 22:08:12
【问题描述】:

我的 JAX WS web 服务部署在 weblogic server 12 上。它是一个包含 war 存档的 ear 文件。 我使用了@Resource WebServiceContext wsContxt;获取客户端IP。 当我在 glassfish 上部署这个 WAR 文件时,WebServiceContext 运行良好。但似乎它在 weblogic 上不起作用。有什么我错过的吗。请指教。 提前致谢, 凯文。

编辑:-

按照本站enter link description here的说明重新构建ear文件后问题解决了

但是使用 WebServiceContext 我只能获取客户端 IP,用户名正在变为空。请参阅下面的代码。

MessageContext msgCtxt = wsCtxt.getMessageContext();
HttpServletRequest req = (HttpServletRequest)msgCtxt.get(MessageContext.SERVLET_REQUEST); 
String clientIP = req.getRemoteAddr(); // Working
req.getUserPrincipal().getName() // Not Working

请指教

【问题讨论】:

    标签: java web-services weblogic12c stateless


    【解决方案1】:

    不知何故,我设法获得了如下的用户 ID。

    MessageContext msgCtxt = wsCtxt.getMessageContext();
    Subject subj = SubjectAccessor.getRequesterSubject(msgCtxt);
    Set set = subj.getPrincipals();
    Iterator i = set.iterator();
    while (i.hasNext()) {
       Principal p = (Principal) i.next();
       username = p.getName();
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 2015-04-26
      • 1970-01-01
      相关资源
      最近更新 更多