Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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_Apache_Servlets_Tomcat7 - Fatal编程技术网

Java servlet可以';我认不出包裹

Java servlet可以';我认不出包裹,java,apache,servlets,tomcat7,Java,Apache,Servlets,Tomcat7,我有一个Java servlet,它使用Apache的各种库调用API。我在WEB-INF/lib目录中有每个JAR,但是当我在保存servlet的WEB-INF/classes目录中编译代码时,它显示: GrooveAPICall.java:10: error: package org.apache.http does not exist 以及我尝试导入的其他每个包。如何为我的servlet导入这些包?我必须在web.xml文件中放一些东西吗?在web-INF/classes中放一个类,或者

我有一个Java servlet,它使用Apache的各种库调用API。我在WEB-INF/lib目录中有每个JAR,但是当我在保存servlet的WEB-INF/classes目录中编译代码时,它显示:

GrooveAPICall.java:10: error: package org.apache.http does not exist

以及我尝试导入的其他每个包。如何为我的servlet导入这些包?我必须在web.xml文件中放一些东西吗?

在web-INF/classes中放一个类,或者在web-INF/lib中放一个jar,这样可以在执行时访问它们。在编译时不需要


换句话说,执行类路径包括WEB-INF/lib中的jar和WEB-INF/classes中的CLASSE,但编译类路径不需要这样做。

将类放入WEB-INF/classes或WEB-INF/lib中的jar可以在执行时访问它们。在编译时不需要


换句话说,执行类路径包括WEB-INF/lib中的JAR和WEB-INF/classes中的CLASSE,但编译类路径不需要这样做。

换句话说,在编译过程中,您只是没有在类路径中包含这些库?那么,您是如何编译servlet类的呢?请参阅编译工具的文档,了解如何指定compiletime类路径。这个特殊的问题实际上与servlet无关。如果它们确实被部署,那么它们应该是可用的。如果它们不在您的编译路径上,那么它们就不会编译。您使用的是IDE吗?如果是这样,只需将jar添加到IDE中的项目库中即可。是的,我一直在编译它们,调用javac-cp.:/usr/share/java/servlet-api-3.0.jar GrooveAPICall.java。我不知道WEB-INF/lib在编译时不能立即访问。我需要在终端的javac语句中列出我需要的每个JAR吗?另外,我不使用IDE,因为Eclipse是如何设置文件目录的,这个项目在一个私有存储库中,所以我真的不想搞砸。换句话说,您只是在编译期间没有在类路径中包含这些库?那么,您是如何编译servlet类的呢?请参阅编译工具的文档,了解如何指定compiletime类路径。这个特殊的问题实际上与servlet无关。如果它们确实被部署,那么它们应该是可用的。如果它们不在您的编译路径上,那么它们就不会编译。您使用的是IDE吗?如果是这样,只需将jar添加到IDE中的项目库中即可。是的,我一直在编译它们,调用javac-cp.:/usr/share/java/servlet-api-3.0.jar GrooveAPICall.java。我不知道WEB-INF/lib在编译时不能立即访问。我需要在终端的javac语句中列出我需要的每个JAR吗?另外,我不使用IDE,因为Eclipse是如何设置文件目录的,这个项目是在一个私有存储库中,所以我真的不想搞砸它。尽管我在我的个人资料中抱怨Maven,如果您的项目设置正确(即web项目将其他项目作为依赖项),它可以为您解决类似的问题。您只需记住将任何appserver提供的库(如servlet api)声明为“提供的”依赖项,这样它就不会打包到孩子的jar中。Gradle也可以完成大部分工作,但它适用于非web项目。尽管Spring必须解决Gradle中的这一缺陷。尽管我在个人资料中抱怨Maven,如果您的项目设置正确(即web项目将其他项目作为依赖项),它可以为您解决类似的问题。您只需记住将任何appserver提供的库(如servlet api)声明为“提供的”依赖项,这样它就不会被打包到孩子的jar中。Gradle也可以完成大部分这项工作,但它适用于非web项目。尽管Spring必须解决Gradle中的这一缺陷。