javaee应用中的javaMap问题

v6ylcynt  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(354)

我成功地将javase8应用程序升级到了chroniclemap3.14.1。我有一个javaee7应用程序,它只是javase8应用程序的一个门面。
从javaee7调用方法来创建编年史Map时,会引发一个bug。看起来“net.openhft.chronicle.hash.impl.util.jna.posixmsync”没有加载!
javase8应用程序中没有出现此错误。
欢迎任何修改或建议。
提前谢谢。
java.lang.nosuchfielderror:c\u library\u name at net.openhft.chronicle.hash.impl.util.jna.posixmsync.(posixmsync。java:39)在net.openhft.chronicle.hash.impl.vanillachronicshash.msync(vanillachronicshash。java:878)在net.openhft.chronicle.hash.impl.vanillachronicshash.msync(vanillachronicshash。java:864)在net.openhft.chronicle.map.chroniceMapBuilder.commitchroniceMapReady(编年史Map生成器)。java:417)在net.openhft.chronicle.map.chronicmappbuilder.createwithnewfile(chronicmappbuilder。java:1732)在net.openhft.chronicle.map.chronicmappbuilder.createwithfile(chronicmappbuilder。java:1589)在net.openhft.chronicle.map.chroniceMapBuilder.recoverpersistedto(编年史Map生成器)。java:1532)在net.openhft.chronicle.map.chroniceMapBuilder.createorrecoverpersistedto(chroniceMapBuilder。java:1515)在net.openhft.chronicle.map.chroniceMapBuilder.createorrecoverpersistedto(chroniceMapBuilder。java:1506)在net.openhft.chronicle.map.chroniceMapBuilder.createorrecoverpersistedto(编年史Map生成器)。java:1500)在com.kem.ae.util.utilities.mapbuilder(utilities。java:125)
在以下位置引发异常:builder.createorrecoverpersistedto(mapfile);

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<>();
                }
            }
        }
hpxqektj

hpxqektj1#

在javaee容器中运行时,是否可以检查类路径上是否有其他版本的jna?
编年史Map是根据jna的4.4.0版本构建的;如果您的容器在类路径上有不同的版本,这可能是您看到的异常的原因。

相关问题