我正在使用WCF其在接口中定义枚举实现的web服务。我试图从Java客户端黑莓调用此。我使用的Eclipse开发黑莓Java应用程序。我使用的是的Sun Java无线工具包(WTK)2.5.2生成存根码自所述web服务是相当大的(已经在由Windows Mobile客户端使用)。

当我尝试使用WTK生成存根代码,我得到了枚举在Eclipse中的错误。在下面的功能,它抱怨java.io.ObjectStreamException不能被解析为一个类型。

private Object readResolve()
    throws java.io.ObjectStreamException {
    return fromValue(getValue());
}

当运行桩模块生成,存在对一个开关或者CLDC 1.0或CLDC 1.1。与这两个选项产生导致相同的问题。

我发现了一个论坛帖子在太阳没有响应。该负责人这个职位指出,“现在java.io.ObjectStreamException是不是在CLDC但在CDC代替。有一个很好的工具,在那里为Web服务创建存根J2ME CLDC专门1.0 / 1.1?”我验证,它并没有在CLDC 1.1存在通过查看[文档 3 )。

有在Eclipse两个可用的快速修复修复此情况:1)在包“java.io”或2)修复项目设置(这是要我添加参考)建立类“ObjectStreamException”

更新

下面是什么JSR-172规范说...

5.2.5枚举 该JAX-RPC子集不提供对XML的支持枚举。

派生通过限制性

5.2.6简单类型 该JAX-RPC子集不提供通过限制派生简单类型的支持。

的WCF枚举WSDL产生与含有<xs:simpleType> <xs:restriction>一个<xs:enumeration>。所以我刚才说这个字段是int,而不是和定义常量?

这是刚刚在WTK的错误吗?如果是,我提交了一份bug报告与Sun会看看他们的反应。为什么不工具包标记为错误?

所以,现在我需要改变接口,以便它是JSR-172标准。是否有工具来读取WSDL,并指出合规性问题?

有帮助吗?

解决方案

CLDC和无线工具包都使用的Java Micro Edition的。 的JavaME是基于java语言,这意味着没有泛型和没有枚举的版本2。

在调查Web服务为您的黑莓手机的第一步是阅读JSR-172规格。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top