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