标签: tomcat8

java.lang.IllegalArgumentException:方法名称中找到无效字符.HTTP方法名称必须是令牌

当我在多服务器Apache Tomcat 8环境中部署我的应用程序时,我正在低于堆栈跟踪.我经常收到此错误,似乎它阻止了tomcat线程:

INFO [http-nio-80-exec-4461] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
 java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
 at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:233)
 at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1017)
 at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1524)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1480)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

任何人都可以指导我如何解决或缩小这种做法吗?我没有得到任何我的应用程序源文件的任何引用.我试图谷歌周围,并在其说的链接,你试图通过https访问http网址,这似乎不太可能.当应用程序在单个Tomcat 8实例上运行时,我没有收到此错误.我只在多服务器环境中得到它.

我也在分享我在每个页面上嵌入的元标记,如果这有助于确定原因.

<%
    response.setHeader("Cache-Control", "no-cache");
    response.setHeader("Cache-Control", "no-store");
    response.setDateHeader("Expires", 0);
    response.setHeader("Pragma", "no-cache");
%>


<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, …
Run Code Online (Sandbox Code Playgroud)

illegalargumentexception tomcat8

119
推荐指数
7
解决办法
16万
查看次数

Tomcat 8投掷 - org.apache.catalina.webresources.Cache.getResource无法添加资源

我刚刚将Tomcat从版本7.0.52升级到8.0.14.

我得到了很多静态图像文件:

org.apache.catalina.webresources.Cache.getResource无法将[/base/1325/WA6144-150x112.jpg]上的资源添加到缓存中,因为在驱逐过期的缓存条目后可用空间不足 - 考虑增加最大大小缓存

我没有指定任何特定的资源设置,我没有得到这个7.0.52.

我已经在启动时发现了一个错误报告中提到的这种情况.对我来说,这不是在启动时发生,而是在请求资源时不断发生.

还有其他人有这个问题吗?

试图至少只是禁用缓存,但我找不到如何指定不使用缓存的示例.这些属性已经从Tomcat版本8中的上下文中消失了.尝试添加资源但无法正确配置.

<Resource name="file" 
    cachingAllowed="false"
    className="org.apache.catalina.webresources.FileResourceSet"
/>  
Run Code Online (Sandbox Code Playgroud)

谢谢.

resources caching tomcat8

106
推荐指数
4
解决办法
15万
查看次数

适用于Java 8的Tomcat 8 Maven插件

是否tomcat7-maven-plugin使用tomcat 8服务器和java 8?我找不到任何东西tomcat8-maven-plugin.

tomcat java-8 maven-tomcat-plugin tomcat8

72
推荐指数
2
解决办法
10万
查看次数

Tomcat 8无法使用"|"处理get请求 在查询参数?

我正在使用Tomcat 8.在一种情况下,我需要处理来自外部源的外部请求,其中请求具有由其分隔的参数|.

请求看起来像这样:

http://localhost:8080/app/handleResponse?msg=name|id|

在这种情况下,我得到以下错误.

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:467)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:667)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

编辑1

它适用于Apache Tomcat 8.0.30但不适用于Tomcat 8.5

java tomcat tomcat8 tomcat8.5

55
推荐指数
6
解决办法
11万
查看次数

Tomcat对HTTP/2.0的支持?

有谁知道支持HTTP/2.0的Tomcat的最低版本是什么?我一直在他们的网站上的任何地方寻找,我找不到任何有关这方面的细节.

https tomcat tomcat7 tomcat8 http2

42
推荐指数
3
解决办法
3万
查看次数

403在Tomcat 8 Manager App上拒绝访问而不提示输入用户名/密码

我根据这个设置了tomcat 8 ,我有以下tomcat-users.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0"> 
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>

  <user username="notadmin" password="not_real_pass" roles="manager-gui"/>
  <user username="cargo" password="not_real_pass" roles="manager-script"/>
<tomcat-users/>
Run Code Online (Sandbox Code Playgroud)

当我尝试访问管理器应用程序时,我被403拒绝,没有提示用户名和密码.

我在配置中错过了什么?

Edit1:添加了完整的xml文件.

tomcat tomcat8

42
推荐指数
5
解决办法
11万
查看次数

我应该从Tomcat 7升级到Tomcat8吗?

我的项目目前正在Tomcat 7上运行.我应该升级到Tomcat 8吗?这样做的优点和缺点是什么?tomcat 8在性能,内存利用率方面更好吗?

tomcat tomcat7 tomcat8

27
推荐指数
2
解决办法
3万
查看次数

获取NoSuchMethodError:javax.servlet.ServletContext.getVirtualServerName()

在Tomcat 8中部署服务时遇到问题.出现以下错误:

引起:java.lang.NoSuchMethodError:javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; 在org.apache.tomcat.websocket.server.WsServerContainer.(WsServerContainer.java:149)在org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:131)在org.apache.tomcat.websocket. server.WsSci.onStartup(WsSci.java:47)在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5244)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ......还有10个

方法getVirtualServerName是在Servlet 3.1中引入的,MANIFEST.MF从我的servlet-apijar中提取后我得到了以下细节:

Specification-Title: Java API for Servlets 
Specification-Version: 3.1 
Specification-Vendor: Sun Microsystems, Inc. 
Implementation-Title: javax.servlet 
Run Code Online (Sandbox Code Playgroud)

其中说它有3.1.那么这个错误还有其他原因吗?请帮忙

java servlets tomcat8

25
推荐指数
4
解决办法
3万
查看次数

在Tomcat 8中将外部资源添加到类路径

我有一个Tomcat应用程序,需要引用应用程序外部的一些属性文件.通常这些存储在特定地方的本地机器上C:\PROJECT_NAME\conf\.

在Tomcat 7中,这可以通过放置一个context.xml文件来实现,/META-INF/其中使用了一个VirtualWebappLoader实际上将此位置添加到应用程序类路径的文件,如下所示:

<Context>
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
        virtualClasspath="/PROJECT_NAME/conf"
        searchVirtualFirst="true" />
</Context>
Run Code Online (Sandbox Code Playgroud)

如何在Tomcat 8中实现同样的功能?

java tomcat classpath tomcat8

21
推荐指数
1
解决办法
2万
查看次数

Tomcat 8中的HTTP/2支持

经过一些研究,我很惊讶我没有在Tomcat中找到任何有关HTTP/2支持的资源.更改日志8.0表示SPDY的实验支持,wiki将HTTP/2称为支持的规范(http://wiki.apache.org/tomcat/Specifications),但我没有找到任何教程.

你知道是否已经可以在Tomcat上启用HTTP/2了吗?如果答案是肯定的我怎么能这样做?

tomcat tomcat8 http2

19
推荐指数
3
解决办法
8233
查看次数