我们编写了一个 WCF 服务,供 Java 商店使用,该商店使用 CXF 生成适配器。我们对 Java 不是很熟悉,但是已经使用 basicHttpBinding、SSL 和基本身份验证公开了该服务。集成测试表明 .NET 客户端可以很好地使用该服务。但是,Java 商店在使用该服务时遇到了问题。具体来说,他们得到以下 JAXB 错误: 两个声明导致 ObjectFactory 类中的冲突。这通常是由于 CXF 尝试创建适配器类时 2 个操作具有相同的名称和命名空间而导致的。
我们找不到任何会导致任何类型冲突的类型或操作名称。我们已确保所有自定义类型都指定了名称空间,并且 tempuri.org 未在 WSDL 中的任何位置指定。Java 商店怀疑错误是因为生成的 WSDL 包含 <xsd:import 元素。
所以,我的问题:
- 有没有比 CXF 更好的方式让 Java 商店使用 WCF 服务?Project Tango 看起来很有趣,但我不知道如何告诉他们考虑使用它。CXF 是 Java 中的事实标准吗?
- BasicHttpBinding/SSL/Basic Auth 是 MS 推荐的互操作方案,但客户端似乎仍然存在互操作问题。我们是否应该考虑其他绑定或设置以使其更易于使用?
- 有没有办法将 WCF 配置为始终输出没有模式导入的单个 WDSL?