gpt4 book ai didi

java - UnsatisfiedLinkError 和 NoClassDefFoundError : Running Java Mapscript on Ubuntu 11. 10

转载 作者:行者123 更新时间:2023-12-02 00:33:11 26 4
gpt4 key购买 nike

我们使用 Java 技术在 Windows 平台上使用 MAPSERVER(版本 6.0.1)编写并运行了一个动态 Web 应用程序。现在需要将其部署在Ubuntu 11.10上。我们已经安装了Apache Tomcat 6.0、Mapserver 6.0.1、Apache 2.0和FWTools-2.0.1(如果我没记错的话,这个包包含了mapserver所需的所有工具,所以我感觉没有安装任何其他工具) 。我们已在 Apache Tomcat 的 Webapps 文件夹中部署了 war 文件(并放置了没有的应用程序)。我什至得到了没有与mapscript api 相关的代码的索引页。但是,当使用 mapscript 获取其他 servlet 时,我们收到以下错误...

java.lang.UnsatisfiedLinkError: no mapscript in java.library.path
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
java.lang.Runtime.loadLibrary0(Runtime.java:840)
java.lang.System.loadLibrary(System.java:1047)
edu.umn.gis.mapscript.mapscriptJNI.<clinit>(mapscriptJNI.java:23)
edu.umn.gis.mapscript.mapObj.<init>(mapObj.java:283)

再次刷新显示上述错误的浏览器页面时,我得到了更改,

java.lang.NoClassDefFoundError: Could not initialize class    
edu.umn.gis.mapscript.mapscriptJNI
edu.umn.gis.mapscript.mapObj.<init>(mapObj.java:283)

我在网上搜索了上述问题。但最终还是一片空白。请提供有关上述问题的想法。

最佳答案

我不会解释为什么您会收到 UnsatisfiedLinkError,而是会解释为什么您在重新加载页面时会收到 NoClassDefFoundError。

带有消息的 NoClassDefFoundError Could not initialize class ...当 JVM 尝试初始化一个已经尝试过但初始化失败的类时,会抛出该异常。

两个堆栈跟踪中的第一个包含该行

edu.umn.gis.mapscript.mapscriptJNI.<clinit>(mapscriptJNI.java:23)

方法名称<clinit>表示类 mapscriptJNI 的静态初始值设定项。因此,在抛出 UnsatisfiedLinkError 时,JVM 正在尝试初始化此类。查看错误消息,似乎这个静态初始化程序试图加载 native 代码库 mapscript但失败了。

此 UnsatisfiedLinkError 会导致 mapscriptJNI类未能成功初始化。 JVM 会记录所有未能初始化的类,如果您尝试再次初始化其中一个类,您将收到 NoClassDefFoundError 并显示一条消息,指出无法初始化该类。

刷新页面时,最终会导致 JVM 尝试初始化类 mapscriptJNI第二次。当然,这个类上次初始化失败了。您的第二个堆栈跟踪完全包含我所描述的错误。

简而言之,UnsatisfiedLinkError 才是这里真正的错误。解决这个问题,另一个就会消失。

关于java - UnsatisfiedLinkError 和 NoClassDefFoundError : Running Java Mapscript on Ubuntu 11. 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com