打开 HFT Chronicle Map,Class 在 Websphere 上未找到异常
Open HFT Chronicle Map , Class Not Found Exception on Websphere
我正在尝试使用 OpenHFT ChronicleMap,代码在 Tomcat 中运行,但在 Websphere 中失败并出现以下错误(下图)
注意:这不会发生在 Tomcat 中,只会发生在 Websphere 中。
代码:
private ChronicleMap<String,RepositoryItem> repositoryMap;
repositoryMap=
ChronicleMapBuilder
.of(String.class, RepositoryItem.class).averageKeySize(KEY_SAMPLE.getBytes("UTF-8").length)
.entries((long) (MAX_ENTRIES))
.averageValueSize(1600)
.create();
public void removeAllModified() {
// This removes all the modified data from the repository
Iterator iter=repositoryMap.values().iterator();
// build a list of all the objects in the repository except the removed items
while (iter.hasNext()){
RepositoryItem repoItem=(RepositoryItem)iter.next();
DataObject d = repoItem.getModified();
if (d != null) {
removeModified(repoItem);
}
}
}
谁能帮我解决这个错误。
SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R Caused by: java.lang.ClassNotFoundException: java.lang.AbstractStringBuilder
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R at java.lang.Class.forName(Class.java:182)
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R at net.openhft.lang.io.StringBuilderUtils.<clinit>(StringBuilderUtils.java:36)
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R ... 81 more
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R java.lang.NoClassDefFoundError: net.openhft.lang.io.StringBuilderUtils (initialization failure)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at java.lang.J9VMInternals.initialize(J9VMInternals.java:176)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.lang.io.NativeBytes.readUTF1(NativeBytes.java:173)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.lang.io.NativeBytes.readUTF0(NativeBytes.java:164)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.hash.serialization.internal.CharSequenceReader.read(CharSequenceReader.java:67)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.hash.serialization.internal.CharSequenceReader.read(CharSequenceReader.java:31)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.map.VanillaChronicleMap$Segment.getEntry(VanillaChronicleMap.java:3042)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.map.VanillaChronicleMap$EntryIterator.next(VanillaChronicleMap.java:3150)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.map.VanillaChronicleMap$EntryIterator.next(VanillaChronicleMap.java:3097)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at java.util.AbstractMap.next(AbstractMap.java:396)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at com.csc.fs.om.ObjectRepositoryChronicleImpl.removeAllModified(ObjectRepositoryChronicleImpl.java:1335)
Chronicle Map 当前不支持运行 Websphere 的 IBM JVM。从您的消息中可以明显看出,Chronicle Map 2 在 IBM JVM 上失败,因为它偶尔会使用一些 类,这些 类 在 OpenJDK/OracleJDK 中存在,但在 IBM JDK.[=11= 中不存在]
Chronicle Map 3 可能没有这个问题,因此潜在的解决方案可能是升级到 Java 8 和 Chronicle Map 3。然而,这将是 Chronicle Map 3 的附带 属性,它也可能会在任何后续版本中停止使用 IBM JVM。
Chronicle 邮件列表中的相关讨论:https://groups.google.com/forum/#!topic/java-chronicle/cAHVQZLASaE
我正在尝试使用 OpenHFT ChronicleMap,代码在 Tomcat 中运行,但在 Websphere 中失败并出现以下错误(下图)
注意:这不会发生在 Tomcat 中,只会发生在 Websphere 中。
代码:
private ChronicleMap<String,RepositoryItem> repositoryMap;
repositoryMap=
ChronicleMapBuilder
.of(String.class, RepositoryItem.class).averageKeySize(KEY_SAMPLE.getBytes("UTF-8").length)
.entries((long) (MAX_ENTRIES))
.averageValueSize(1600)
.create();
public void removeAllModified() {
// This removes all the modified data from the repository
Iterator iter=repositoryMap.values().iterator();
// build a list of all the objects in the repository except the removed items
while (iter.hasNext()){
RepositoryItem repoItem=(RepositoryItem)iter.next();
DataObject d = repoItem.getModified();
if (d != null) {
removeModified(repoItem);
}
}
}
谁能帮我解决这个错误。
SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R Caused by: java.lang.ClassNotFoundException: java.lang.AbstractStringBuilder
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R at java.lang.Class.forName(Class.java:182)
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R at net.openhft.lang.io.StringBuilderUtils.<clinit>(StringBuilderUtils.java:36)
[5/30/16 12:45:03:236 IST] 0000007a SystemErr R ... 81 more
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R java.lang.NoClassDefFoundError: net.openhft.lang.io.StringBuilderUtils (initialization failure)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at java.lang.J9VMInternals.initialize(J9VMInternals.java:176)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.lang.io.NativeBytes.readUTF1(NativeBytes.java:173)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.lang.io.NativeBytes.readUTF0(NativeBytes.java:164)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.hash.serialization.internal.CharSequenceReader.read(CharSequenceReader.java:67)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.hash.serialization.internal.CharSequenceReader.read(CharSequenceReader.java:31)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.map.VanillaChronicleMap$Segment.getEntry(VanillaChronicleMap.java:3042)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.map.VanillaChronicleMap$EntryIterator.next(VanillaChronicleMap.java:3150)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at net.openhft.chronicle.map.VanillaChronicleMap$EntryIterator.next(VanillaChronicleMap.java:3097)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at java.util.AbstractMap.next(AbstractMap.java:396)
[5/30/16 12:45:03:267 IST] 0000007a SystemErr R at com.csc.fs.om.ObjectRepositoryChronicleImpl.removeAllModified(ObjectRepositoryChronicleImpl.java:1335)
Chronicle Map 当前不支持运行 Websphere 的 IBM JVM。从您的消息中可以明显看出,Chronicle Map 2 在 IBM JVM 上失败,因为它偶尔会使用一些 类,这些 类 在 OpenJDK/OracleJDK 中存在,但在 IBM JDK.[=11= 中不存在]
Chronicle Map 3 可能没有这个问题,因此潜在的解决方案可能是升级到 Java 8 和 Chronicle Map 3。然而,这将是 Chronicle Map 3 的附带 属性,它也可能会在任何后续版本中停止使用 IBM JVM。
Chronicle 邮件列表中的相关讨论:https://groups.google.com/forum/#!topic/java-chronicle/cAHVQZLASaE