【问题标题】:Apache CXF JAX-WS spring-boot starter very slowApache CXF JAX-WS spring-boot starter 非常慢
【发布时间】:2018-05-21 18:43:45
【问题描述】:

我正在开发一个具有100+ JAX-WS endpointsspring-boot 应用程序。我正在使用 apache CXF,启动时性能很糟糕。发布 100 个端点需要 10 多分钟。

我尝试启用调试日志并看到 cxf 正在为每个端点创建一个新的 JAXBContext 实例。我试图找到配置单个 JAXBContext 的材料,但没有可用的材料正确显示我如何做到这一点。

仅供参考:我在这里使用 JavaFirst 方法。

欢迎提出任何改进启动时间性能的建议。

谢谢, 斯里拉姆

【问题讨论】:

    标签: performance spring-boot cxf jax-ws


    【解决方案1】:

    对于 JAX-WS,请查看这个现有问题:Reuse CXF jaxb context between multiple services

    您也可以使用@Bean 注释为org.apache.cxf.jaxb.JAXBDataBinding 添加bean,而不是使用XML 声明它。

    如果有人在寻找 JAX-RS,则处理方式不同。您需要为org.apache.cxf.jaxrs.provider.JAXBElementProvider 添加一个bean,并将singleJaxbContext 设置为true,如文档中所述:http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-SingleJAXBContextandextrauserclasses

    【讨论】:

    • 这适用于 REST(JAXRS) 服务,但对于 SOAP(JAXWS) 是否有这样简单的方法来做到这一点?
    • 我的错,只是更改了答案并添加了 JAX-WS 的链接。如果您还有其他问题,请告诉我...
    • 嗨丹尼斯,感谢您的建议。我可以通过扩展 JAXBDatabinding 类来配置 JAXBContext 的单个实例,就像 Anver Levy 在stackoverflow.com/questions/12687528/… 中建议的那样。但是对于所有 SOAP 请求,映射似乎每隔一个请求就搞砸了!我所有的第一个 SOAP 请求都成功,但从第二个开始我得到参数不匹配异常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    相关资源
    最近更新 更多