使用wsimport生成的WSDL和客户端代码非常大。因此,想要在jaxws中设置一个方法/设置,只加载必要的客户端类,而不是加载所有这些,这需要大约10秒,而且消耗的堆也很大。 此外,在使用不同的10个线程创建多个端口时,所使用的内存很容易达到1.5G并出现内存不足错误。
如果我可以懒得加载客户端存根对象,那将会非常有帮助。
答案 0 :(得分:0)
您的问题无法以您期望的方式解决。 Java无论如何都以懒惰的方式加载类,它对JAX-WS没有不同的作用,并且在你的特定情况下并没有奇怪的行为。 JAX-WS中没有设置来改变某些东西并解决您的问题。
在我看来,你真正的问题是一个巨大的网络服务,有无数的方法,参数,故障等,虽然我倾向于认为你的堆使用和内存不足的条件应该归因于其余的应用程序而不是JAX-WS客户端。
我认为您的解决方案是将您的庞大Web服务分解为多个Web服务,按功能划分或其他一些概念。然后,您将只使用您真正需要的服务(及其客户)。