Bluemix Java Liberty Web Project java.lang.NoClassDefFoundError: when loading third party jar
Bluemix Java Liberty Web Project java.lang.NoClassDefFoundError: when loading third party jar
我正在使用 IBM Bluemix 的 Java For Liberty 来部署 Web 应用程序。
我试图获取系统环境并将其转换为 JSONObject
而且我很确定我已将 jar 文件添加到类路径中
但是,在我 运行 应用程序(尝试推送到 bluemix 云并 运行 在 liberty profile 应用程序服务器本地)之后,它抛出 java.lang.NoClassDefFoundError
请指出我应该如何配置.....
您需要将您的 jar 添加到 dep-jar
文件夹并使用包含的 build.xml
.
构建 war 文件
在build.xml
中寻找classPathDir
,它会像下面这样。
<path id="classpathDir">
<pathelement location="bin"/>
<pathelement location="dep-jar/com.ibm.ws.javaee.jaxrs.1.1_1.0.1.jar"/>
</path>
您需要将每个 jar 添加到该块。例如。
<path id="classpathDir">
<pathelement location="bin"/>
<pathelement location="dep-jar/com.ibm.ws.javaee.jaxrs.1.1_1.0.1.jar"/>
<pathelement location="dep-jar/json-1.0.0.jar"/>
</path>
或者您可以执行以下操作,其中包括 dep-jar
.
中的所有 jar
<path id="classpathDir">
<pathelement location="bin"/>
<pathelement location="dep-jar/com.ibm.ws.javaee.jaxrs.1.1_1.0.1.jar"/>
<fileset dir="dep-jar/" includes="*.jar" />
</path>
dep-jar
文件夹中的 jars 不会与最终应用程序二进制文件 (war) 打包在一起。它只能在编译期间使用。如果您希望将 jar 包含在 war 中(在运行时使用),则需要将其包含在 WebContent/WEB-INF/lib
文件夹中。
如果您创建并下载 Java DB Web Starter
样板文件,您将看到正确的结构设置 - WebContent/WEB-INF/lib/nosqljson.jar
我正在使用 IBM Bluemix 的 Java For Liberty 来部署 Web 应用程序。
我试图获取系统环境并将其转换为 JSONObject
而且我很确定我已将 jar 文件添加到类路径中
但是,在我 运行 应用程序(尝试推送到 bluemix 云并 运行 在 liberty profile 应用程序服务器本地)之后,它抛出 java.lang.NoClassDefFoundError
请指出我应该如何配置.....
您需要将您的 jar 添加到 dep-jar
文件夹并使用包含的 build.xml
.
在build.xml
中寻找classPathDir
,它会像下面这样。
<path id="classpathDir">
<pathelement location="bin"/>
<pathelement location="dep-jar/com.ibm.ws.javaee.jaxrs.1.1_1.0.1.jar"/>
</path>
您需要将每个 jar 添加到该块。例如。
<path id="classpathDir">
<pathelement location="bin"/>
<pathelement location="dep-jar/com.ibm.ws.javaee.jaxrs.1.1_1.0.1.jar"/>
<pathelement location="dep-jar/json-1.0.0.jar"/>
</path>
或者您可以执行以下操作,其中包括 dep-jar
.
<path id="classpathDir">
<pathelement location="bin"/>
<pathelement location="dep-jar/com.ibm.ws.javaee.jaxrs.1.1_1.0.1.jar"/>
<fileset dir="dep-jar/" includes="*.jar" />
</path>
dep-jar
文件夹中的 jars 不会与最终应用程序二进制文件 (war) 打包在一起。它只能在编译期间使用。如果您希望将 jar 包含在 war 中(在运行时使用),则需要将其包含在 WebContent/WEB-INF/lib
文件夹中。
如果您创建并下载 Java DB Web Starter
样板文件,您将看到正确的结构设置 - WebContent/WEB-INF/lib/nosqljson.jar