当前位置: 首页 > 面试题库 >

如何在Spring-ws端点中访问HTTP标头?

柯永福
2023-03-14
问题内容

如何在Spring-ws端点中访问HTTP标头?

我的代码如下所示:

public class MyEndpoint extends AbstractMarshallingPayloadEndpoint {
  protected Object invokeInternal(Object arg) throws Exception {
      MyReq request = (MyReq) arg;
      // need to access some HTTP headers here
      return createMyResp();
  }
}

invokeInternal()仅获取未编组的JAXB对象作为参数。如何访问请求内部附带的HTTP标头invokeInternal()

一种可能可行的方法是创建一个Servlet过滤器,该过滤器将标头值存储到ThreadLocal变量中,然后在内部访问该变量invokeInternal(),但是有没有更好的,更像弹簧的方法来做到这一点?


问题答案:

您可以添加这些方法。在TransportContextHolder将持有线程局部变量(在这种情况下HTTP)与交通有关的一些数据。您可以HttpServletRequest从访问TransportContext

protected HttpServletRequest getHttpServletRequest() {
    TransportContext ctx = TransportContextHolder.getTransportContext();
    return ( null != ctx ) ? ((HttpServletConnection ) ctx.getConnection()).getHttpServletRequest() : null;
}

protected String getHttpHeaderValue( final String headerName ) {
    HttpServletRequest httpServletRequest = getHttpServletRequest();
    return ( null != httpServletRequest ) ? httpServletRequest.getHeader( headerName ) : null;
}


 类似资料:
  • 问题内容: 我在玩spring-boot,遇到了问题。创建RESTful Web服务非常容易。但是我不能用spring-boot来运行肥皂服务。 实际上,我的项目没有spring-boot-starter-web依赖项。 是否需要一个尚不存在的额外的sprint-boot-starter? 有哪些解决方法?如果我有一个用于SOAP服务的web.xml,可以在初始化过程中以某种方式包含它吗?我知道已

  • 问题内容: 我是Web编程的新手,尤其是Java语言的新手,所以我才了解到标头和正文是什么。 我正在使用Spring MVC编写RESTful服务。我可以在控制器中创建简单的服务。我需要帮助来了解如何从REST服务控制器中的方法请求中获取HTTP标头信息。我想解析出标题并从中获取一些属性。 你能解释一下我如何获得这些信息吗? 问题答案: 使用注释参数时,参数将检索标头信息。因此,你可以执行以下操作

  • 问题内容: 我想通过将其存储为Servlet上下文属性来在Servlet和Web服务(JAX-WS)之间共享一个对象。但是,如何从Web服务检索servlet上下文? 问题答案: JAX-WS通过消息上下文使servlet上下文可用,可以使用Web服务上下文来检索它。插入以下成员将使JAX- WS将对Web服务上下文的引用注入到您的Web服务中: 然后,您可以使用以下命令访问servlet上下文:

  • 问题内容: 我正在尝试编写一个访问USB端口以读取和写入通过USB连接的设备的Java应用程序。我面临的问题是,我不知道在Java中究竟要使用什么来做这样的事情。我在网上搜索,发现有一个叫的东西,但所有帖子看起来都相当老。 目前,我正在使用这些库,但有时会遇到一些同步错误。当我使用C#进行等效操作时,它需要的代码要少得多,而且我不会遇到任何相同的同步错误。 我的问题是, JRE的最新版本中是否包含

  • 问题内容: 使用Spring-WS时,如何在客户端动态设置自定义HTTP标头(不是SOAP标头)? 问题答案: 配置:

  • 问题内容: 我想捕获客户端JavaScript中的HTTP请求标头字段,主要是Referer和User-Agent。我该如何访问它们? Google Analytics(分析)设法通过将您嵌入到页面中的JavaScript来获取数据,因此绝对有可能。 问题答案: 如果要访问引荐来源网址和用户代理,客户端Javascript可以使用这些引荐来源网址和用户代理,但不能直接访问标头。 要检索引荐来源网址