我正在使用IBM Bluemix的Java For Liberty来部署Web应用程序 .
我试图获得系统env并将其转换为JSONObject
我非常确定我已经将jar文件添加到了类路径中
但是,在我运行应用程序(尝试推送到bluemix Cloud 并在自由配置文件应用程序服务器中本地运行)之后,它会抛出 java.lang.NoClassDefFoundError
请说明我应该如何配置.....
dep-jar 文件夹中的jar文件不会打包最终的应用程序二进制文件(war) . 它仅用于编译期间 . 如果您希望jar包含在war中(在运行时使用),则需要将其包含在 WebContent/WEB-INF/lib 文件夹中 .
dep-jar
WebContent/WEB-INF/lib
如果您创建并下载 Java DB Web Starter 样板,您将看到正确的结构设置 - WebContent/WEB-INF/lib/nosqljson.jar
Java DB Web Starter
WebContent/WEB-INF/lib/nosqljson.jar
您需要将jar添加到 dep-jar 文件夹并使用包含的 build.xml 构建war文件 .
build.xml
在 build.xml 中查找 classPathDir ,它将如下所示 .
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>
2 回答
dep-jar
文件夹中的jar文件不会打包最终的应用程序二进制文件(war) . 它仅用于编译期间 . 如果您希望jar包含在war中(在运行时使用),则需要将其包含在WebContent/WEB-INF/lib
文件夹中 .如果您创建并下载
Java DB Web Starter
样板,您将看到正确的结构设置 -WebContent/WEB-INF/lib/nosqljson.jar
您需要将jar添加到
dep-jar
文件夹并使用包含的build.xml
构建war文件 .在
build.xml
中查找classPathDir
,它将如下所示 .您需要将每个jar添加到该块中 . 例如 .
或者您可以执行以下操作,其中包括
dep-jar
中的所有jar .