1

我正在尝试使用 JAX-WS 生成的代理调用 Web 服务。

WSDL 相对较小(11kB),只有 3 个操作,并且存储在本地。

但是当我尝试初始化端口时,它在 stdout 的这条线上卡住了 10-20 秒:

在 'file:/C:/path/to/webapp/WebContent/WEB-INF/wsdl/' 处检索文档。

这对应于new MyServicePort(new URL(wsdlLocation))wsdl 的 , 和 阅读。

对 Web 服务的所有后续调用都可以正常工作且速度很快(每次调用 <200 毫秒)。

随后的调用new MyServicePort(new URL(wsdlLocation))也很快......

在合理规格的计算机上,这样的响应时间是否正常?(核心 i5 + 8GB 内存)

4

1 回答 1

0

应用程序启动后,第一次 Web 服务调用通常很慢,因为正在创建代理对象,并且框架初始化了进行 WS 调用所需的所有类。

一个常见的解决方法是让你的服务公开一些不会做任何事情的存根方法),当你的应用程序启动时,调用这个存根。这将在后台创建服务代理对象,当您的应用实际调用服务时,一切就绪。

于 2013-04-08T13:58:55.873 回答