- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们正在尝试从 SUSE Linux Enterprise Server 11 (java-1_7_0-ibm) 运行一个进程(代理),该进程连接到部署在另一台 Linux 计算机上的 Javaspace Blackboard (JINI)。 (CentOs 以及 Open JDK“1.7.0_05-icedtea” 版本)
Stack Trace :
INFO: Starting broker
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.J9VMInternals.initialize(J9VMInternals.java:259)
at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicInvocationHandler.java:653)
at net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHandler.java:528)
at com.sun.jini.reggie.$Proxy0.lookup(Unknown Source)
at com.sun.jini.reggie.RegistrarProxy.lookup(RegistrarProxy.java:128)
at edu.vt.ndssl.blackboard.JiniSpaceService.findSpace(JiniSpaceService.java:372)
at edu.vt.ndssl.blackboard.JiniSpaceService.<init>(JiniSpaceService.java:74)
at edu.vt.ndssl.blackboard.JavaSpaceBlackboard.<init>(JavaSpaceBlackboard.java:31)
at edu.vt.ndssl.blackboard.BlackboardFactory.make(BlackboardFactory.java:28)
at edu.vt.ndssl.broker.Broker.<init>(Broker.java:53)
at edu.vt.ndssl.broker.Broker.main(Broker.java:231)
Caused by: java.lang.RuntimeException: Unexpected exception
at com.sun.jini.logging.Levels.createLevel(Levels.java:142)
at com.sun.jini.logging.Levels.<clinit>(Levels.java:52)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:237)
... 10 more
Caused by: java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2667)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1387)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2059)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1984)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1867)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1419)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:420)
at com.sun.jini.logging.Levels.createLevel(Levels.java:138)
... 13 more
相同的代码可以在 Java 1.6 版本(最高 26)上正常工作。我正在寻找要在 SUSE Linux Enterprise Server 上安装的正确 Java 版本,该版本将与此操作系统兼容,并且也相当于 Oracle JDK Update 5 或 Open JDK 版本 1.7.0_05 (icedtea)。
最佳答案
显然,问题的根本原因是Oracle对com.sun.jini.logging.Levels
类的序列化格式进行了不兼容的更改。据报道,这一变化发生在 Oracle JDK 1.6.0_38 和 JDK 1.7.0_13 中,并且可能也出现在最新的 OpenJDK 版本中。
这个问题在使用 JINI 的各种项目中都有体现。示例:
通过搜索“com.sun.jini.logging.Levels EOFException”可以找到更多示例。
<小时/>我无法说出适合您的解决方案,但我有几个想法:
避免:我认为如果不在应用程序网络中混合更改前后的 JVM 版本,就可以避免该问题。
如果您需要升级应用程序 JVM,我建议您将它们全部升级,然后完全关闭/重新启动 JINI 应用程序和服务。
修复您的应用程序:Apache River 项目似乎通过修改 JINI 代码修复了该问题。作为issue ticket说:
The com.sun.jini.logging.Levels class produces a RuntimeException with the latest version of Java (both 1.6 and 1.7). The issue surrounds creation of custom java.util.logging.Level. The current implementation uses a ClassReplacingObjectOutputStream and the LevelData approach. By removing this approach and creating a subclass of java.util.logging.Level the issue gets resolved.
issue ticket关于实现此目的的最佳方法、建议的补丁以及实际实现修复的 checkin 链接进行了很多讨论。
关于java - Oracle JDK Update 5 (1.7.0_05) 无法在 SUSE Linux Enterprise Server 11 上运行。连接到 Javaspace Blackboard (JINI) 时出现 EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342263/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!