首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ChronicleMap在JavaEE应用程序中的应用

ChronicleMap在JavaEE应用程序中的应用
EN

Stack Overflow用户
提问于 2017-09-04 13:59:27
回答 1查看 305关注 0票数 2

我成功地将JavaSE8应用程序升级到ChronicleMap 3.14.1。我有一个JavaEE7应用程序,它只是JavaSE8应用程序的外观。

当从JavaEE7调用用于创建chronicleMap的方法时,会引发一个bug。看起来"net.openhft.chronicle.hash.impl.util.jna.PosixMsync“没有加载!

这个错误不会在JavaSE8应用程序中引发。

欢迎任何修正或建议。

提前谢谢。

net.openhft.chronicle.hash.impl.util.jna.PosixMsync.(PosixMsync.java:39),net.openhft.chronicle.hash.impl.VanillaChronicleHash.msync(VanillaChronicleHash.java:878),net.openhft.chronicle.hash.impl.VanillaChronicleHash.msync(VanillaChronicleHash.java:864),net.openhft.chronicle.map.ChronicleMapBuilder.commitChronicleMapReady(ChronicleMapBuilder.java:417),net.openhft.chronicle.map.ChronicleMapBuilder,java.lang.NoSuchFieldError.createWithNewFile(ChronicleMapBuilder.java:1732) at net.openhft.chronicle.map.ChronicleMapBuilder.createWithFile(ChronicleMapBuilder.java:1589) at net.openhft.chronicle.map.ChronicleMapBuilder.recoverPersistedTo(ChronicleMapBuilder.java:1532) at net.openhft.chronicle.map.ChronicleMapBuilder.createOrRecoverPersistedTo(ChronicleMapBuilder.java:1515) at net.openhft.chronicle.map.ChronicleMapBuilder.createOrRecoverPersistedTo(ChronicleMapBuilder.java:1506) at net.openhft.chronicle.map.ChronicleMapBuilder.createOrRecoverPersistedTo(ChronicleMapBuilder.java:1500)在com.kem.ae.util.Utilities.mapBuilder(Utilities.java:125)

异常发生在: builder.createOrRecoverPersistedTo(mapFile);

代码语言:javascript
复制
 public static <K, V> Map<K, V> mapBuilder(Class<K> key, Class<V> value, Param param, File mapFile) {

            ChronicleMapBuilder<K, V> builder = ChronicleMapBuilder.of(key, value)
                    .entries(param.getTotalSeq());

            if (key != Integer.class) {
                builder = builder.averageKeySize(param.getEntrySize()
                        * (Exception.class.isAssignableFrom(value) ? 4 : 2));
            }

            if (value != Double.class) {
                builder = builder.averageValueSize(param.getEntrySize()
                        * (Exception.class.isAssignableFrom(value) ? 4 : 2));
            }

            if (mapFile == null) {
//                log.info("create in-memory off-heap map");
                return builder.create();
            } else {
                try {
//                    log.info("create persisted off-heap map");
                    return builder.createOrRecoverPersistedTo(mapFile);
                } catch (IOException ex) {
                    log.error(ex.getMessage(), ex);
                    return new ConcurrentHashMap<>();
                }
            }
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-04 14:37:53

您能否检查在javaEE容器中运行时,您的类路径上是否有另一个版本的jna?

Chronicle是针对jna的4.4.0版本构建的;如果容器在类路径上有不同的版本,这可能是出现异常的原因之一。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46038663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档