Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java servlet Java.lang.NoClassDefFoundError:org/json/JSONObject_Java_Servlets_Javac - Fatal编程技术网

Java servlet Java.lang.NoClassDefFoundError:org/json/JSONObject

Java servlet Java.lang.NoClassDefFoundError:org/json/JSONObject,java,servlets,javac,Java,Servlets,Javac,我有一个非常简单的servlet,当我添加JSON库并尝试运行它时,我有了java.lang.NoClassDefFoundError:org/JSON/JSONObject(没有JSON库,一切都很好)。 我是这样编译的(在ubuntu中): 它编译时没有任何错误,它发生在运行时 我没有为此使用任何IDE servlet正在docker中运行: docker文件: FROM tomcat:7 RUN apt-get update RUN apt-get install default-jdk

我有一个非常简单的servlet,当我添加JSON库并尝试运行它时,我有了
java.lang.NoClassDefFoundError:org/JSON/JSONObject
(没有JSON库,一切都很好)。 我是这样编译的(在ubuntu中):

它编译时没有任何错误,它发生在运行时

我没有为此使用任何IDE

servlet正在docker中运行:

docker文件:

FROM tomcat:7

RUN apt-get update
RUN apt-get install default-jdk --yes

COPY . /src

WORKDIR /src/

RUN mkdir -p /usr/local/tomcat/webapps/ROOT/WEB-INF/classes

RUN javac  -classpath ./libs/json-20160810.jar:/usr/local/tomcat/lib/servlet-api.jar:. *.java && mv *.class /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/

RUN cp web.xml /usr/local/tomcat/webapps/ROOT/WEB-INF

运行应用程序时,还需要在类路径中提供json库。最简单的方法是将它们放在tomcat的lib文件夹中
将json-20160810.jar放在tomcat的lib中

运行应用程序时,还需要在类路径中提供json库。最简单的方法是将它们放在tomcat的lib文件夹中

将json-20160810.jar放在tomcat的lib中

最好在应用程序使用时添加一行将json jar复制到应用程序的WEB-INF/lib,而不是tomcat lib,而不是tomcat本身

最好在应用程序使用时添加一行将json jar复制到应用程序的WEB-INF/lib,而不是tomcat lib,不是tomcat本身

将此添加到web.xml、org.json和json 20080701中仍然存在同样的问题@Jens@SandeepRoy看起来op不使用maven。此外,您不能在web.xmlas@kuhajeyan中添加依赖项,json…jar不在您的tomcat类路径中。是或更好的构建awar,其中包含依赖项将此添加到web.xml、org.json json 20080701中仍然存在相同的问题@Jens@SandeepRoy看起来op不使用maven。另外,您不能在web.xmlas@kuhajeyan中添加依赖项,json…jar不在您的tomcat类路径中。是或更好的构建awar,其中包含我需要创建的lib文件夹的依赖项?因为我看不到@kuhajeyan@Maximtoybermantomcat安装中应该有“lib”文件夹。或者您需要创建一个jar,将jar放入tomcat库不是一个好主意。如果应用程序部署在另一台服务器上怎么办?我需要创建lib文件夹?因为我看不到@kuhajeyan@Maximtoybermantomcat安装中应该有“lib”文件夹。或者您需要创建一个jar,将jar放入tomcat库不是一个好主意。如果应用程序部署在另一台服务器上会怎么样?解决了问题。@Peter Gelderbloem解决了问题。@Peter Gelderbloem
FROM tomcat:7

RUN apt-get update
RUN apt-get install default-jdk --yes

COPY . /src

WORKDIR /src/

RUN mkdir -p /usr/local/tomcat/webapps/ROOT/WEB-INF/classes

RUN javac  -classpath ./libs/json-20160810.jar:/usr/local/tomcat/lib/servlet-api.jar:. *.java && mv *.class /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/

RUN cp web.xml /usr/local/tomcat/webapps/ROOT/WEB-INF