【问题标题】:cxf client and service sharing same objects for parameters produces IllegalArgumentExceptioncxf 客户端和服务共享相同的参数对象会产生 IllegalArgumentException
【发布时间】:2015-07-03 00:09:24
【问题描述】:

我使用 CXF 创建了一个 SOAP Web 服务,部署在战争 (WAR1) 中。

也是一个动态客户端,CXF 部署在另一个 WAR (WAR2) 中。

两者共享打包在 JAR 中的相同请求/响应对象。

所有这些都部署在 EAR 中。

该服务运行良好,我可以通过 SOAPUI 使用它。

当我尝试将服务与动态客户端一起使用时,它给了我一个问题。

当我尝试使用 JAR 中的对象来调用 WAR1 中的服务时,它说对象不一样,因为我来自客户端的请求对象来自 jar,而 Web 服务期望输入的请求对象来自战争。

我得到以下异常:

java.lang.IllegalArgumentException: Part {http://webservice.backend.test.com/}useRequest should be of type com.test.backend.webservice.Request, not com.shared.model.webservice.request.Request

关于我应该采取什么途径来解决这个问题的任何想法?

谢谢

【问题讨论】:

    标签: java web-services jaxb cxf jax-ws


    【解决方案1】:

    错误说明了一切。您可能对对象 useRequest 的导入有误。更正它并重新部署您的客户端... Soap ui 生成它自己的客户端,因此能够正常工作。因为你的网络服务很好。

    【讨论】:

    • 问题是 WARS、服务和客户端中的导入是相同的,因为它来自同一个共享 JAR。
    • 导入将是您在客户端代码中声明的内容。您可以在此处粘贴客户端和服务的导入吗?
    • 两者都有:import com.shared.model.webservice.request.Request,它是我保存共享类的 JAR 包
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2011-03-29
    • 1970-01-01
    • 2016-05-03
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多