草庐IT

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了,所以如果这是可以简单解决的问题,我不会太惊

java - 如何在 log4j 文件名中插入当前 webapp 的文件夹名称

我正在编写一个要在Tomcat中部署的JavaWeb应用程序,并且我正在使用log4j进行日志记录。我喜欢在生成的日志文件的名称中自动插入Web应用程序的文件夹名称。目前log4j.properties中的文件名设置如下所示:log4j.appender.R.File=${catalina.home}/logs/mywebapp.log我需要这样的东西:log4j.appender.R.File=${catalina.home}/logs/${current.webapp.folder}.log是否需要在属性文件中为此指定某种环境变量,或者我必须从代​​码中实例化记录器?

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

java - 我需要知道我的 java webapp 在 webapp 启动时运行的 HTTP 和 HTTPS 端口

在任何http或https请求发生之前,是否可以从Web应用程序的java代码中找出为TomcatWeb服务器配置的HTTP和HTTPS端口。我在应用程序启动时需要这些信息。我不想等待某人发起HTTP请求并调用getServerPort()。我想要的是在启动web应用程序时找出HTTP和HTTPS端口。这可能吗?我对这个问题进行了很好的搜索,但几乎没有找到任何解决方案。 最佳答案 要在运行时访问此配置,一种方法是创建您自己的Valve,扩展自ValveBase并将其注册到Engine下的server.xml配置(请参阅http://

java - 找不到 hibernate 属性

我们正在将javablazedshibernate与flex项目集成。首先我们在eclipse中测试了纯javahibernate,它运行良好。但是当我们将相同的内容放入tomcat中以与blazeds进行flex集成时,它会显示以下错误。这是唯一的错误。Jan24,201311:31:31AMorg.hibernate.cfg.EnvironmentINFO:Hibernate3.2.6Jan24,201311:31:31AMorg.hibernate.cfg.EnvironmentINFO:hibernate.propertiesnotfoundJan24,201311:31:31

java - 构建 Eclipse 后 Maven 包结构发生变化

我在Eclipse中创建了一个Maven项目。最初我的包结构是这样的-src/main/java---com.package1---com.package2-src/main/resources当我成功构建项目并在tomcat中部署war时,我的项目结构更改为-src.main.java.com.package1-src.main.java.com.package2-src.main.resources这会在包导入声明中的Java类文件中产生错误。我想恢复我原来的项目结构。我在Eclipse中安装了m2eclipse插件。我也试过Maven>UpdateProject..(我在Stac