CXF服务和getport需要花费大量时间

时间:2016-05-17 14:24:11

标签: soap cxf

我正在使用CXF开发SOAP客户端。 我有wsdl2java生成的代码。 我做了一个JAR可执行文件来测试。 当我尝试提出请求时,我首先这样做:

Service ss = Service.create(wsdlURL, SERVICE_NAME);
 MiNTService port = ss.getPort(MiNTServiceSOAP, MiNTService.class);
  • wsdl是Web服务的URL。
  • SERVICE_NAME是该服务的QName。
  • MiNTService是从wsdl2java代码生成的类。
  • MiNTServiceSOAP是端点的QName
  • MintSErvice.class是wsld2java生成的类的名称

service.create花费10分钟 gerPort()也消耗了10分钟。 在那段时间之后......请求已经完成。

我尝试在本地放置所有wsdl,但结果相同。 可能会发生什么????。

系统有:

  • 4GB RAM
  • 5GB可用空间磁盘。
  • CPU 2.5 GHz
  • Ping到服务器是正常的......
  • 连接已通过https
  • 使用Axis2没有时间请求的问题,但我们不能使用axis2,因为签名请求有很多问题......我们正在尝试使用CXF。

感谢所有

2 个答案:

答案 0 :(得分:0)

解决方案: 问题是从Eclipse导出“可运行的jar文件”的方法。

如果你将图书馆打包到罐子里......那就慢了。

解决方案是在导出过程中选择“将所需库复制到生成的jar旁边的子文件夹中”选项。

Tremendo el asunto .....

再见

答案 1 :(得分:0)

当提供的网络服务关闭时,我也遇到直接在服务构造函数下直接调用的问题。 Service.create(wsdlURL,SERVICE_NAME)也在内部在构造函数下方调用。

就我而言,当Web服务在线时,一切正常。 我期望的是,如果不进行长时间挂起就无法进行初始化,则服务初始化会很快做出响应。

  • 我们可以为此通话设置超时时间吗?
  • 有什么具体方法吗?
  • 这是CXF的已知问题吗?

这是我正在使用的服务构造函数:

 protected Service(java.net.URL wsdlDocumentLocation, QName serviceName) {
        delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation,
            serviceName,
            this.getClass());
 }