Articles of tomcat

IOException:使用Apache 2,mod_jk和Tomcat over AJP,套接字读取失败

当我的用户使用Android设备连接JSON Rest服务时,我收到以下exception: java.io.IOException: Socket read failed at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:313) at org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:364) at org.apache.coyote.ajp.AjpProcessor.receive(AjpProcessor.java:331) at org.apache.coyote.ajp.AbstractAjpProcessor.refillReadBuffer(AbstractAjpProcessor.java:614) at org.apache.coyote.ajp.AbstractAjpProcessor$SocketInputBuffer.doRead(AbstractAjpProcessor.java:1065) at org.apache.coyote.Request.doRead(Request.java:422) at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:290) at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:431) at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:315) at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:200) at org.codehaus.jackson.impl.ByteSourceBootstrapper.ensureLoaded(ByteSourceBootstrapper.java:340) at org.codehaus.jackson.impl.ByteSourceBootstrapper.detectEncoding(ByteSourceBootstrapper.java:137) at org.codehaus.jackson.impl.ByteSourceBootstrapper.constructParser(ByteSourceBootstrapper.java:197) at org.codehaus.jackson.JsonFactory._createJsonParser(JsonFactory.java:542) at org.codehaus.jackson.JsonFactory.createJsonParser(JsonFactory.java:389) at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1454) at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:124) at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:153) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.readWithMessageConverters(HandlerMethodInvoker.java:641) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestBody(HandlerMethodInvoker.java:605) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:354) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) at […]

告诉Tomcat放弃请求而不是死亡“所有线程(150)当前正忙”

我的Tomcat 6.0.26有时会死亡说: 严重:所有线程(150)当前正忙,正在等待。 增加maxThreads(150)或检查servlet状态 …然后Tomcatclosures,用户无法访问该Web应用程序,直到我手动重新启动Tomcat。 有些线程确实需要很长时间才能执行,这是通过devise,而不是一个线程无效的问题。 我知道我可以增加maxThreads,但这不是一个可行的解决scheme,因为服务器可能会收到请求甚至更多的请求。 问题:在达到maxThreads并且AJP / 1.3积压已满时,我可以告诉Tomcat放弃请求吗? 以下是我的server.xml在任何情况下: <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" minSpareThreads="100"/> <Connector port="8080" […]

如何解决对Tomcat webapp拒绝的请求资源的访问?

我已经在我的机器上安装了Tomcat,运行良好。 我可以login到pipe理经理。 我已经部署了一个.war文件,可以在Tomcatpipe理器上查看。 该文件的名称是shim (实际上我正在安装freeshim )。 当我尝试使用192.168.1.65:8080/shim访问浏览器上的Shim时,我得到了shim的Webpipe理界面。 这是我得到的消息: 这是FreeSHIM的Webpipe理界面。 Web服务位于“这里”。 当我点击“这里”为了我configurationFreeshim我得到一个错误: HTTP状态403 – 访问请求的资源已被拒绝。 我哪里错了? 我怎样才能改变这个权限?

SolrCore初始化失败

当我访问仪表板时,它告诉我: SolrCore初始化失败 /var/log/tomcat6/catalina.out唯一的警告行是: WARNING: New index directory detected: old=null new=/var/solr/data/index/ 我该如何解决这个问题?

警告:SSL引擎不支持指定的密码

我有一个正在运行的Web服务,通​​过Apache Tomcat 7在server.xml使用以下连接器元素: <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="C:\Java\myhost.keystore" keystorePass="importkey" sslProtocol="TLS" /> 多年来,这一直运行良好,但是现在出现了一种新的Logjam安全威胁,并且我正在尝试使用“部署Diffie-Hellman指南”来获取我的Web服务以获取TLS指令。 所以,我将下面一行添加到<connector>元素中: ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES256-GCM-SHA384,DHE-RSA-AES128-GCM ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128- -RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA,ECDHE-ECDSA-AES256-SHA,DHE-RSA-AES128-SHA256,DHE-RSA-AES128-SHA,DHE-DSS DHE-RSA-AES256-SHA,DHE-RSA-AES256-SHA,AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,AES128 -SHA,AES256-SHA,AES,CAMELLIA,DES-CBC3-SHA“ Tomcat重新启动正常,但我不能再连接到我的Web服务。 检查日志后,我注意到这一行: 警告:SSL引擎不支持指定的密码:ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES256- ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA,ECDHE- DHE-RSA-AES128-SHA,DHE-DSS-AES128-SHA256,DHE-RSA-AES256-SHA256,DHE-DSS-AES256-SHA,DHE-RSA-AES256-SHA,AES128-GCM-SHA256,AES256-GCM- SHA3​​84,AES128-SHA256,AES256-SHA256,AES128-SHA,AES256-SHA,AES,CAMELLIA,DES-CBC3-SHA 试图让Tomcat只使用这些密码,我错过了什么? 我如何使它们由SSL引擎支持?

在响应头中加载平衡器ID

将负载平衡器标识符放在响应头中是否是一种好的做法? 我正在使用Tomcat / Apache HTTP系统,似乎没有一个好方法来validation我正在查看哪台机器。

是否有可能通过网页界面重新启动Tomcat

是否有可能通过某种pipe理工具重新启动tomcat。 我想通过可通过networking访问的pipe理工具远程重启tomcat? 如果是的话,你可以指点我其中的一些。 谢谢。

Tomcat在哪里caching我的taglib .jar文件?

我将一个.jar文件部署到一个tomcat实例(我们在Redhat linux上运行6.0.18),根据日志输出,旧的.jar仍在使用中。 我已经重新启动了,我可以想到,已经删除了工作目录等等。 但无济于事。 我不是tomcat专家,所以这里是我的问题:我应该在哪里寻找tomcat是否使用caching的jar,我应该如何阻止它呢?

滚动部署在Tomcat后面的HAProxy实例

我有三个Tomcat实例在HAProxy后面运行。 当我对我的Web应用程序进行更改时,我想要进行滚动部署(即一次反弹一个Tomcat),以便用户看不到任何停机时间。 我该怎么做呢? 我看到一个正在运行的haproxy实例可以进行热重新configuration(这对于添加或删除新的池服务器非常有用),但是当其中一个目标服务器暂时closures时,HAProxy如何反应? 如果有比HAProxy更好的解决scheme,我也愿意看看。 谢谢!

Tomcat – 导出私钥?

所以我有一个使用不同function的SSL证书的设备。 我使用这些命令使用keytool生成一个CSE: keytool -genkey -alias tomcat -keyalg RSA -keystore / opt / msw / data / keystore -storepass changeit keytool -certreq -alias tomcat -keyalg RSA -keystore / opt / msw / data / keystore -storepass changeit -file /root/certreq.csr 其中生成了我用来下载证书的CSR,然后我使用它来安装它 “keytool -import -alias tomcat -trustcacerts -keystore / opt / msw / data / keystore -storepass changeit […]