【问题标题】:Web service Response processing taking too much timeWeb 服务响应处理花费太多时间
【发布时间】:2015-02-08 19:08:49
【问题描述】:

我正在 Tomcat 7 上的一个 Servlet/JSP 基础 Web 应用程序上使用基于 HTTP 上的肥皂的 Web 服务。
我正在使用 Codehaus XFire eclispe 插件,它从 WSDL 生成客户端存根并为我插入依赖库。代码格式为Service name = Class nameService Action = Class Method

所以我实例化这个类并调用适当的方法来使用这个服务。它工作正常。

现在我的问题是在负载测试期间,其中一项服务花费了太多时间。我从日志和wireShark 确认服务运行良好,并在几百毫秒内返回响应。
我的发现是高延迟是在我的代码接收响应对象之前处理 Web 服务响应。

每个请求平均花费的时间多达 40 秒。我正在测试的负载是 50 个用户和 50 次迭代,加速时间为 5 秒。

只有我一个人经历过这个吗? 有没有办法在 xfire 中配置任何属性来提高性能? 有人知道发生了什么吗?

我的项目正在进行中

  • Servlet/JSP
  • 雄猫 7
  • Java 运行时 1.6
  • Xfire 1.2.5 和 JAXB 2.0.1

提前致谢

如果需要更多信息,请询问。

【问题讨论】:

  • XFire 是一项古老的技术。如果您使用它的继任者之一,例如 Apache CXF,您可以获得更多帮助。
  • 谢谢,但谁能帮我解决这个问题。我继承了这个项目进行优化。我被困在这里了。
  • 您是否可以控制项目,即您可以更改响应结构吗?很高兴看到响应中生成的 XML。您查看响应的大小了吗?
  • 它返回 100 条不超过 1000 行的记录,并且在文件系统上的大小约为 2kb。
  • 我只是在使用服务,我无法更改响应。

标签: java web-services jaxb tomcat7 xfire


【解决方案1】:

由于没有其他选择,我们决定使用 HTTPURLConnection 手动调用 Soap 服务并捕获 JAXB 上下文大大提高了性能,但是是的,我们一次又一次地发明了轮子。

看起来codehous XFire 有一些问题。我们需要计划将来将我们的应用程序迁移到一些更好的服务客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2016-03-24
    • 2018-07-08
    • 2015-05-27
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多