Java Tomcat 8 Docx4j应用程序问题

Java Tomcat 8 Docx4j应用程序问题,java,tomcat,client-server,docx4j,Java,Tomcat,Client Server,Docx4j,我很困惑,需要聪明的建议 我用Spring Boot开发了这个Java8Web应用程序,它运行在ApacheTomcat服务器上,有一个Postgresql数据库,并使用RabbitMq处理通过JS客户端发出的请求,Swagger用于公开的RESTAPI。主要目的是利用docx4j和ApachePOI等常见的LIB在系统上读/写excel/word文件 在本地安装上,一切都像一个魔咒。 但是移动到一个不同的环境,有一个中央服务器和多台主机(至少2-3台)访问客户端应用程序,这会带来麻烦 主要问题

我很困惑,需要聪明的建议

我用Spring Boot开发了这个Java8Web应用程序,它运行在ApacheTomcat服务器上,有一个Postgresql数据库,并使用RabbitMq处理通过JS客户端发出的请求,Swagger用于公开的RESTAPI。主要目的是利用docx4j和ApachePOI等常见的LIB在系统上读/写excel/word文件

在本地安装上,一切都像一个魔咒。 但是移动到一个不同的环境,有一个中央服务器和多台主机(至少2-3台)访问客户端应用程序,这会带来麻烦

主要问题似乎与Tomcat有关,因为经常需要多次重新启动主应用程序。 Tomcat进程内存也在不断增长。(任何使用后,所有流均正确关闭)

不会引发或记录任何错误

已经尝试在可能的情况下强制垃圾收集(即使不推荐),但没有任何改进。 已尝试更改服务器(Wildfly),但没有任何改进。 在不同的操作系统环境上进行了尝试,没有任何更改

有什么想法吗

谢谢你抽出时间

--编辑


添加了对Tomcat的APR支持以获得更好的性能,但仍然没有。我在一个函数中发现了一个可能的瓶颈,该函数将docx4j libs用于文档合并。但它只在这个Windows环境中发生

我来回答我自己的问题

所有问题都与应用程序内存处理有关,而与环境无关。 我已将“麻烦”环境复制到另一台机器上,但仍会出错。所以这就是应用程序本身


谢谢大家抽出时间。

在上面附加一个剖析器(例如),看看发生了什么。这是一个相当广泛的问题,没有明显的答案。你为什么要重启Tomcat?是真的忘记了还是挂了?您是否分析了应用程序以查看是否存在内存泄漏?您是否尝试让2-3人在本地访问该应用程序,看看会发生什么?我建议首先进行更多的调试。事实上,它发生在多个应用服务器上,这让我觉得这是你的代码中的一部分。@Kayaman已经连接了visualvm,但没有任何异常。Ty@stdunbar是的,我知道它非常广泛,只是寻求聪明的建议。已尝试让用户访问本地安装。Ty@mguarnaccia你观察了多长时间?在需要重新启动服务器之前,我希望您能看到一些有趣的东西。除非您的意思是将visualvm连接到本地安装,而本地安装没有任何问题。