【问题标题】:calling wsdl based webservice from within alfresco从 alfresco 中调用基于 wsdl 的 Web 服务
【发布时间】:2014-09-03 14:41:43
【问题描述】:

我关注了这篇文章:http://www.mkyong.com/webservices/jax-ws/jax-ws-hello-world-example/

所以我有:

作为端点。

另一方面,我有使用 wsimport 生成的客户端:

这在 eclispe 中运行良好,无需涉及 alfresco。但是,我想从 alfresco 调用 web 服务(例如,从 java 支持的 web 脚本)

我尝试将客户端的内容复制到我的 amp 文件并从 webscript 调用它,但它失败了!

Caused by: java.lang.IncompatibleClassChangeError: Class com.ibm.wsdl.DefinitionImpl does not implement the requested interface javax.wsdl.extensions.AttributeExtensible

1 - 有没有更优雅的方式通过定义一个 spring bean (spring-ws) 等来配置对 wsdl 的访问

2 - 为什么它不起作用?完整跟踪:http://pastebin.com/ak1qzygA

使用露天社区 5.0.a

谢谢

【问题讨论】:

  • stackoverflow.com/questions/1980452/… 。依赖 jar 问题?
  • 我从 lib 目录中删除了 axis-wsdl4j-1.5.1.jar - 现在它可以工作了......但这对我来说很奇怪。
  • 可能与其他wsdl4j.jar有冲突; axis-wsdl4j jar 优先于另一个。有了axiswsdl4j jar,现在一切正常了吗??
  • 也许吧。是的,它与轴 wsdl jar 一起工作了
  • 在 alfresco jira 报告了该问题,并将在下一个版本中修复 issues.alfresco.com/jira/browse/ALF-21093

标签: java wsdl jax-ws alfresco spring-ws


【解决方案1】:

当依赖项/库 jar 发生更改时,您通常会看到 IncompatibleClassChangeError。因此,依赖于库的方法/代码必须针对更改重新编译。

在这里猜测问题与某些依赖项 jar 被错误选择或存在旧版本的 jar 或一个 jar 优先于另一个有关。查看类路径中包含“com.ibm.wsdl.DefinitionImpl”类的 jar 应该会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2015-06-17
    • 1970-01-01
    相关资源
    最近更新 更多