【问题标题】:Web service exception: " An exception or error occurred in the container during the request processing java.lang.Exception: Host is not set"Web服务异常:“请求处理过程中容器发生异常或错误java.lang.Exception:未设置主机”
【发布时间】:2017-08-02 11:45:43
【问题描述】:

我有一个 Web 方法,它通过读取类文件(maven 插件文件)获取一些名称并返回其所需的输入类型(BOM、AML、BOM 和 AML 或任何其他名称)。在尝试执行此操作时,我遇到了异常。

[2017-08-02T17:14:33.902+0800] [Payara 4.1] [SEVERE] [AS-WEB-CORE-00037] [javax.enterprise.web.core] [tid: _ThreadID=47 _ThreadName=http-thread-pool::http-listener-1(1)] [timeMillis: 1501665273902] [levelValue: 1000] [[
  An exception or error occurred in the container during the request processing
java.lang.Exception: Host is not set
    at org.glassfish.grizzly.http.server.util.Mapper.map(Mapper.java:902)
    at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:496)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:309)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:238)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:466)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:169)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:539)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573)
    at java.lang.Thread.run(Thread.java:722)
]]

你能帮我解决这个问题吗?

【问题讨论】:

  • 过去几周我的一台生产服务器上再次出现这种情况,下面的回答对我没有用。其他人得到这个?

标签: java web-services maven payara


【解决方案1】:

我再次通过创建一个新工作区(从 svn 结帐)来构建 war 文件,并且它起作用了。

【讨论】:

    【解决方案2】:

    Grizzly 从请求中的Host 标头获取虚拟主机名。从 HTTP 1.1 开始,需要 Host 标头。但是如果Host header 设置了一个空名字,Grizzly 就无法获取到这个名字并抛出这样的异常。

    通常,Host 请求头由 HTTP 客户端设置。但是即使Host header 存在,但由于某些原因它的值为空,你也会发生这样的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-20
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 2022-11-24
      • 2018-06-21
      • 1970-01-01
      相关资源
      最近更新 更多