1

我一直在开发一个使用 ColdFusion 7 中的 Web 服务的 BlackBerry 应用程序。Java ME SDK 和 Java Wireless Toolkit 都要求生成的 WSDL 是文档/文字类型。

幸运的是,我已经输入了 Web 服务开发,所以我尝试在 cfcomponent 标记中设置 'style="document"'。这生成了一个文档/文字样式的 WSDL,但现在 wscompile 在几个地方生成了以下错误:

发现未知简单类型:javax.xml.soap.SOAPElement 发现未知简单类型:java.util.Calendar

任何想法为什么会发生这种情况?

JWSDP 工具确实可以正确解析 WSDL,但存根使用 J2ME 平台中不可用的名称空间。我原以为 ColdFusion WSDL 可以更轻松地与 Java 系列中的其他产品一起使用。

4

2 回答 2

0

如果服务没有太大变化(因此 WSDL 不会有太大变化),您可以将 WSDL 保存为文本文件并根据需要进行修改。我的建议——同样,假设服务或多或少已经完成——将样式声明从cfcomponent标签中取出并生成 WSDL,然后将其保存为纯文本文件并根据需要对其进行修改以供黑莓应用程序。

于 2009-08-20T15:22:22.987 回答
0

事实证明,该问题与导致该问题的方法参数和返回类型的数据类型有关。WSDL 是有效的,并且 J2SE 的 wscompile 版本能够正确解析它。但是由于移动平台上API能力的降低,某些数据类型无法用J2ME版本的wscompile进行解析。

我确实需要在 ColdFusion Web 服务的 cfcomponent 标记中保留 'style="document"' 声明,因为 J2ME 的存根生成器只会解析文档/文字类型的 WSDL 文件。

http://developers.sun.com/mobility/midp/articles/webservices/提供了 JAX-RPC for Java ME 中支持的数据类型的参考。

于 2009-08-27T18:05:22.793 回答