Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Axis2如何确定它是通过后端服务类的特定实例完成的?如何让它调用destroy方法?_Java_Tomcat_Axis2_Quickbooks - Fatal编程技术网

Java Axis2如何确定它是通过后端服务类的特定实例完成的?如何让它调用destroy方法?

Java Axis2如何确定它是通过后端服务类的特定实例完成的?如何让它调用destroy方法?,java,tomcat,axis2,quickbooks,Java,Tomcat,Axis2,Quickbooks,我正在试图消除内存泄漏。该应用程序是用Java8和Axis2编写的,并在Tomcat9中运行。每隔三十分钟,另一个应用程序QuickBooks Web连接器就会调用它,进行五分钟的数据交换,然后再次等待三十分钟。这个循环重复两周。之后,会出现一条错误消息:java.lang.OutOfMemoryError:java堆空间 我是这样测量记忆的: Runtime rt = Runtime.getRuntime(); log.info(rt.freeMemory() + "

我正在试图消除内存泄漏。该应用程序是用Java8和Axis2编写的,并在Tomcat9中运行。每隔三十分钟,另一个应用程序QuickBooks Web连接器就会调用它,进行五分钟的数据交换,然后再次等待三十分钟。这个循环重复两周。之后,会出现一条错误消息:java.lang.OutOfMemoryError:java堆空间

我是这样测量记忆的:

    Runtime rt = Runtime.getRuntime();
    log.info(rt.freeMemory() + "_" + rt.totalMemory() + "_" + rt.maxMemory());
以下是前三次调用的结果:

(一)

18428224_347078656_1905262592

480697904_980942848_1905262592

(二)

476704880_980942848_1905262592

406780536_991428608_1905262592

(三)

404825328_991428608_1905262592

570512728_1026555904_1905262592

根据Axis2

存在Lifecycle.destroy(ServiceContext上下文)方法 当Axis2决定使用后端服务类的特定实例完成销毁时,将调用destroy()

我发现它从未被调用过,这可能是内存泄漏的原因。如何使Axis2决定调用destroy()方法