草庐IT

TOMCAT_OPTS

全部标签

JavaCompiler API - 在 tomcat 中运行时编译速度慢

我的应用程序在运行时生成Java代码并使用JavaCompilerAPI对其进行编译。一些生成的文件可能相当大——多达几十万行。我发现当我在命令行中对生成的代码运行javac命令时,或者如果我使用仅通过JavaCompilerAPI进行编译的应用程序,我可以编译其中的许多文件(~500),即使它们非常大,也可以在两分钟内完成。但是,如果我在Tomcat服务器上运行时通过我的应用程序调用API,则编译时间会超过12分钟(!!!)。如果有任何关于如何提高编译性能的建议,我将不胜感激。谢谢! 最佳答案 尝试将线程优先级设置为最高值(在线程

Java Servlet 部署 - 嵌入与否 - Tomcat/Jetty

我有几个部署到生产环境的网络应用程序。我使用Tomcat作为我的servlet引擎已有10年了。我正在考虑从deploy-a-war-into-Tomcat模型转向嵌入Jetty模型。这些网络应用程序部署在多个服务器上,其中一些是水平扩展的(使用基于nginxIP散列的分区)。我看到了一些优势:我可以为特定的网络应用程序配置我的servlet引擎(而不是为运行多个不同网络应用程序的Tomcat进行通用配置)通过在同一主机上运行多个Jetty实例(配置为监听不同端口),可以更轻松地水平扩展我的Web应用程序。我也可以用Tomcat做到这一点(我过去在同一台主机上运行过多个tomcat实例

java - 在 tomcat/shared/lib 中获取 jar 以使用调用它们的 webapp 的配置进行记录

我希望将我们的tomcat实例从5.5.27升级到6.0.32,但我在从shared/lib目录中的jars进行日志记录时遇到了一些问题(我在tomcat6中重新创建了该目录)。我们有一个jar文件,它是我们在构建过程中创建的,其中包含一些通用代码,在tomcat5下,它位于shared/lib下。当我们从这个jar文件中的代码编写日志语句时,它们被写入当时调用该jar的Web应用程序的日志文件。我们的每个webapps在其WEB-INF/lib目录中都有一个log4j.properites和log4j.jar,在shared/lib中也有一个log4j.jar,但没有log4j/pr

java - NoClassDefFoundError : org/apache/catalina/startup/Bootstrap when running tomcat from exe/as service

我已经通过startup.bat运行Tomcat6.0.37服务器很长一段时间了。现在我想将tomcat作为一项服务运行,它会在机器启动时自动启动。我用bat创建了服务:service.batinstall。这成功地创建了服务。当试图启动它时,我在标题中得到了错误。然后我尝试只运行exe(tomcat6.exe)。这给了我完全相同的错误。我检查过CATALINA_HOME、JAVA_HOME和JRE_HOME设置是否正确。bootstrap.jar确实存在于tomcat/bin中。jvm的路径是正确的。jvm.dll确实存在于jre6/bin/server中。我还发现了一个线程,其中缺

java - 读取 HTTPServletRequest 的 POST 主体,然后在 Tomcat 中调用 getParameter

我的应用程序需要检查POST请求的内容/数据/正文/有效负载而不更改后续getParameter调用的结果。从输入流中读取正文:可以使用request.getInputStream中的InputStream或request.getReader中的BufferedReader读取正文。读取POST参数:POST请求通常在请求正文中包含请求参数。这些可以使用getParameter检索。问题:第一个getParameter调用在内部解析inputStream并将所有参数插入到参数HashMap中。它要求inputStream仍然包含要解析的内容。因此,无法在检查内容的同时调用有效的getP

java - NPE 在 Tomcat 中安装 Clojure WAR,重启修复

我正在尝试将一个用Clojure编写的WAR文件部署到DebianLenny上的Tomcat6。当我将它复制到webapps目录时(对于第一种类型和覆盖现有war时),我得到一个NullPointerException。奇怪的是,重新启动Tomcat解决了这个问题,servlet运行正常。我用leiningen-war打包了WAR(也试过lein-ring)。使用Jetty时,servlet工作正常。这是来自Tomcat的相关日志条目:Jan12,20117:18:06PMorg.apache.catalina.core.StandardWrapperValveinvokeSEVERE

java - 仅在使用 Java 的 Tomcat 8+ 上启用记录 SSL 握手失败(审计目的日志)

如果REST客户端尝试连接到我的应用程序时SSL握手失败,我需要记录。该应用程序是使用SpringBoot和Java8构建的,并部署在Tomcat8上。在SSL握手失败的情况下,由于TLS连接断开,日志记录要求可能必须在Tomcat层或Java中完成,因为在我的案例中Tomcat使用底层JVM进行SSL证书验证。我知道启用调试级别日志记录。-Djavax.net.debug=ssl但这会记录大量信息并会减慢进程。并记录成功的SSLvaldiations。有没有办法在Java或Tomcat级别使用最少的日志单独启用故障案例。我不是从调试的角度来看这个,因为SSL调试日志对此非常有用。此要

java - Tomcat 7 - 忽略数据库连接池参数 (DBCP)

我们面临一个问题,即在Tomcat7重启期间与数据库建立的连接数激增。我们的配置如下,设置在Tomcat的context.xml中:重启Tomcat后,打开的连接数接近700。重新部署war(重命名为“.war_bk”再重命名回“.war”)解决了这个问题。为什么会这样?我们可以做些什么不同的事情? 最佳答案 也为maxConnLifetimeMillis添加值maxConnLifetimeMillis-1Themaximumlifetimeinmillisecondsofaconnection.Afterthistimeisexc

java - 僵尸线程正在吞噬我的大脑(J2EE、Tomcat、Hibernate、Quartz)

毕竟是万圣节。这就是问题所在:我正在使用Quartz维护一些老式的J2EE代码,其中线程用完了。jconsole告诉我,当它变成梨形时,只有不到60K个线程,其中大约100个(!!)实际上正在运行。直觉和一些谷歌搜索(另见here)表明正在发生的事情(我打赌Quartz)正在创建永远不会被清理的非托管线程。几个子问题:是否有我可以轻松使用的工具来跟踪线程创建,因此我可以确定问题真的出在Quartz上?我发现的关于类似问题的大部分内容都引用了Weblogic;这是Tomcat的错误线索吗?有没有人有已知的解决方案?我已经有好几年没接触J2EE了,所以如果这是可以简单解决的问题,我不会太惊

JVM版本未更新在Manager Web Tomcat8 Debian中

我正在尝试使用此步骤更新我的服务器Debian8中的Java版本关联.在检查运行后java-version和javac-version,我的Java正确更新。我的问题是当我尝试检查JVM版本时仍然保持旧版本看答案更新/etc/eett/default/tomcat8的java房屋JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64比重新启动tomcat