Java servlet Java.lang.NoClassDefFoundError:org/json/JSONObject
我有一个非常简单的servlet,当我添加JSON库并尝试运行它时,我有了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
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