问题标签 [cldc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
blackberry - 为什么在 WTK 存根生成器中使用 java.io.ObjectStreamException 用于枚举?
我正在使用在 WCF 中实现的 Web 服务,它在接口中定义了枚举。我正在尝试从 Java BlackBerry 客户端调用它。我正在使用 Eclipse 为 BlackBerry 开发 Java 应用程序。我正在使用Sun Java Wireless Toolkit (WTK) 2.5.2 生成存根代码,因为 Web 服务相当大(Windows Mobile 客户端已经在使用)。
当我尝试使用 WTK 生成存根代码时,我在 Eclipse 中收到有关枚举的错误。在以下函数中,它抱怨 java.io.ObjectStreamException 无法解析为类型。
运行存根生成器时,有一个用于 CLDC 1.0 或 CLDC 1.1 的开关。使用这两个选项生成会导致相同的问题。
我在 Sun 找到了一个关于此的论坛帖子,但没有任何回应。这篇文章中的人说,“现在 java.io.ObjectStreamException 不在 CLDC 中,而是在 CDC 中。是否有一个很好的工具可以为 J2ME 特别是 CLDC 1.0/1.1 创建 Web 服务存根?” 我通过查看 [documentation 3 )验证了它在 CLDC 1.1 中不存在。
Eclipse 中有两个快速修复程序可以解决这种情况:1)在包“java.io”中创建类“ObjectStreamException”或 2)修复项目设置(希望我添加参考)。
更新:
这是 JSR-172 规范所说的……
5.2.5 枚举 JAX-RPC 子集不提供对 XML 枚举的支持。
5.2.6 由限制派生的简单类型 JAX-RPC 子集不支持通过限制派生简单类型。
WCF 枚举的WSDL 生成一个<xs:simpleType>
包含. 那么我是否只是说这个字段是一个 int 而不是定义常量?<xs:restriction>
<xs:enumeration>
这只是WTK中的一个错误吗?如果是这样,我向 Sun 提交了一份错误报告,看看他们是否做出回应。为什么工具包不将此标记为错误?
所以现在我需要更改接口,使其符合 JSR-172。是否有工具可以阅读 WSDL 并指出合规性问题?
java-me - 寻找对 J2ME 友好的 IoC 容器已经开始!
我正处于 Blackberry/J2ME 项目的初始阶段——以及这个出色平台带来的其他限制,缺乏对反射和 1.3 语言级别的支持意味着绝大多数现有的 IoC 容器无法使用。(谷歌有没有 AOP 的 Android 版 Guice,但即便如此也需要支持注释)。
因此,J2ME 上的 IoC 容器空间非常有限。引起我注意的一个框架叫做Signal Framework,它看起来很有前途。它试图在概念上与 Spring Framework 的 IoC 保持接近,实现其功能的一小部分,并且这样做不依赖于字节码修改或导致运行时 xml 解析。相反,它在构建时处理配置 XML 以生成实现此 IoC 功能的 java 代码。
一般来说,在构建时生成代码对于移动应用程序来说似乎是一种非常明智的方法——如果我的应用程序必须在用户设备上进行较少的 XML 解析,那也很棒!
那么,您在 J2ME/CLDC 上实施 IoC 有什么经验,您是如何消除口中的苦味的呢?
java - J2ME 没有找到我的 java.util.TreeMap 实现
我正在尝试什么
我正在尝试java.util.TreeMap
在 J2ME 应用程序中使用。我知道它TreeMap
存在于 J2SE 但不存在于 J2ME 上,因此我已努力将 J2SE 6.0 移植TreeMap
到 J2ME 1.2 并将其包含在我的 Midlet Jar 中。这涉及移植一半的集合框架,但现在我(理论上)已经完成了它并想要测试它。
错误
但是当我在 SUN J2ME SDK 3.0 模拟器 (DefauldClclPhone2) 上启动我的应用程序时,我得到了这个异常:
在真实设备上,我得到"Error in Application"
但看不到实际的异常,因为我现在没有匹配的 SDK。
这个错误有什么奇怪的
我对我的申请成功通过预验证过程感到困惑。我总是经历过缺失的课程(几天前我有很多)会触发预验证器中的错误。所以我得出结论,在成功预验证后,设备上不能有任何东西NoClassDefFoundError
。
细节
我的 jar 中的目录结构如下所示:
我还确保它TreeMap.class
是 Java 1.2 类文件格式。
我的目标是 CDLC 1.0 和 MIDP 1.0,所以我的预验证器正在使用类路径${wtk.home}/lib/cldc_1.0.jar, ${wtk.home}/lib/midp_1.0.jar
只是一个想法:在 J2ME 类加载器中是否有任何特殊检查阻止它从应用程序 jar加载一个java.util.*
或类?java.lang.*
我从来没有听说过,但也许他们做了这样的事情作为安全功能?
结论与解决方案
正如 Joachim Sauer 指出的那样,java.*
如果我定义了类,类加载器将不会加载它们。所以我不得不把它们移到另一个包,实际上是com.companyname.j2meport.java.util
. 虽然我自己的代码可以从那里导入这些类,但对于引用 java.util.TreeMap 的闭源第三方库来说,这不是一个选项。
我终于设法使用Retrotranslator 的扩展机制将这些引用更改为我自己的类,这是我已经在构建过程中使用的工具,但我并不完全了解它的功能。
我的 J2SE 库依赖于其他 J2SE 库,现在可以在 J2ME 上运行!
blackberry - 如何在 j2me / blackberry (midp) 应用程序中快进和快退音频?
我想在 j2me 和 Blackberry 应用程序中快进和倒带录制的音频。
有没有可用的示例代码?我该怎么做?
java - CLDC 1.0 / MIDP 2.0 应用程序中的三角函数
如何在 CLDC 1.0 / MIDP 2.0 应用程序中使用三角函数?我需要来自标准数学库的“sin cos tan asin acos atan atan2”函数。
谢谢
java - J2ME:如何生成随机数?
我只是想知道如何使用 J2ME CLDC 1.0 MIDP 2.0 生成随机数?
基本上,每次从手机屏幕单击菜单项生成时,我想生成一个 14 位随机数。
java - Java ME 上的 Class.getSuperclass() 替换?
如何在 Java ME 中获取 Class 实例的超类。也就是说,使用 CLDC 1.1 中可用的有限功能来伪造 Class.getSuperclass() 功能?
我想做的是让抽象超类做这样的事情:
然后子类可以添加这样的专业化:
java-me - What is the difference between CLDC and MIDP for Java Mobile?
Could anyone explain what the difference is between CLDC and MIDP?
xhtml - 如何检测兼容的 CLDC 版本的手机?
我目前正在开发移动基础 xhtml 网站。在这个网站我必须做下载页面。为此,我需要检测兼容的 CLDC 版本的电话。请帮我。
谢谢
java-me - MIDP 2.0 版本问题:$method 未定义 $type
我编写了一个 MIDlet,它做了几件“高级”的事情:从网络上获取图像、调整它们的大小、将它们保存在手机上、显示它们。
这一切都在诺基亚 S60 第三版 FP1 模拟器中完美运行。该设备支持 MIDP 2.0 和 CLDC 1.1(还有 JSR75,我需要它来保存文件)。它也可以在诺基亚 E71(物理设备)上正常工作。
然后我尝试在其他几个模拟器上运行 MIDlet。其中之一,来自 Java ME SDK 3.0 的 DefaultCldcJtwiPhone2,也声称支持 MIDP 2.0 和 CLDC 1.1。它没有 JSR75,这解释了为什么“FileConnection 无法解析为类型”。
然而,这并不能解释为什么 List.deleteAll()、String.equalsIgnoreCase(String) 和其他一些是未定义的。
我得到的实际错误:
- 未定义 Math 类型的方法 ceil(double)
- 对于 List 类型,方法 deleteAll() 未定义
- 未为 String 类型定义方法 equalsIgnoreCase(String)
- 对于 Displayable 类型,方法 getWidth() 未定义
当我查看 MIDP 2.0(即 JSR118)API(http://java.sun.com/javame/reference/apis/jsr118/)时,我可以清楚地看到所有这些方法都存在,带有“since”标签是 MIDP 2.0 或 CLDC 1.1。
我的问题:为什么支持 MIDP 2.0 的模拟器不能访问所有 MIDP 2.0 方法?或者,我做错了什么?