【问题标题】:Replace Apache CXF with Sun Metro in TomEE在 TomEE 中将 Apache CXF 替换为 Sun Metro
【发布时间】:2014-06-02 15:58:41
【问题描述】:

我今天在我们的开发项目中遇到了一个问题。我想在 TomEE 1.6.0+ 环境中创建 web 服务,就像我之前在 Glassfish 环境中所做的那样。我遇到了很多麻烦,所以我想尝试用 Sun Metro 堆栈(2.3 版)替换 Apache CXF。

我还没有找到任何关于它的教程,所以我尝试自己做一些事情。我的解决方案是从 TomEE lib 文件夹中删除所有 cxf-*.jar 和 openejb-cxf-*.jar,并添加了 webservices-*.jar(仅以下 4 个库:rt、tools、extra、extra- api)来自metro分布。我查看了安装 ant 脚本,并根据安装定义选择了文件。

现在看起来一切都很完美。现在我可以像以前一样使用 Web 服务了。我的项目顺利部署到 TomeEE 环境中。

我的问题现在很简单:

这是一个正确的解决方案还是看起来像一个黑客?

提前感谢您的任何反馈。

【问题讨论】:

    标签: cxf java-metro-framework apache-tomee


    【解决方案1】:

    最终的答案将来自 TomEE 项目的某个人,但我很惊讶这能奏效......但我很高兴它为你做了。

    TomEE 为 CDI 绑定到 CXF 用于特定目的:它可以扫描 jax-rs 注释、注入字段、公开服务等(太多无法枚举)。只要您的应用程序不依赖任何该功能,您就可以。

    由于您运行的是不受支持的配置,因此这里的关键是彻底测试。我会创建一组集成测试(SOAP-UI?),这将使您获得舒适的分支覆盖率......绝对至少涵盖您的快乐路径。

    TomEE 的优点在于,正如您所发现的,它具有令人难以置信的模块化。祝你好运,稍后将一切进展情况回馈给社区。​​p>

    【讨论】:

    • 是的,你是对的:没有 apache-cxf jax-rs 注释确实会失败,但当然这是微不足道的后果,因为没有 jax-rs 实现。于是我又做了一些实验。我已经改回了 apache-cxf 库。现在,当我包含任何 jax-rs 资源时,我的所有 url-s 都会破坏,因为我有根上下文。当我删除了 jax-rs 资源类后,网址又好了。并且 web 服务运行良好,但是 web 服务客户端给我策略错误“不能满足任何策略替代方案”,因此所有功能都不可用。我需要更多的研究。
    猜你喜欢
    • 1970-01-01
    • 2021-06-15
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    相关资源
    最近更新 更多