Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Servlets 如何*正确*将WAR及其依赖项上传到Ubuntu中的Tomcat7_Servlets_Classpath_Tomcat7 - Fatal编程技术网

Servlets 如何*正确*将WAR及其依赖项上传到Ubuntu中的Tomcat7

Servlets 如何*正确*将WAR及其依赖项上传到Ubuntu中的Tomcat7,servlets,classpath,tomcat7,Servlets,Classpath,Tomcat7,我想知道如何上传一个独立于依赖项的WAR文件。 例如,您上载所有依赖项并将它们保留在类路径中 然后你上传你的WAR文件,其中没有包含依赖项。 当您测试servlet时,这非常有用,因为您不必上传 一个大的WAR文件,每次您需要更正某些内容时都会进行一些小的更改 问题是,有时它有效,有时则无效 那么,有没有一个官方的正确方法来做到这一点呢 当然,只需将所有内容打包到WAR文件中就可以了。如果WAR文件的依赖项不在WAR文件的范围内,那么每当您更新这些依赖项时,您都需要重新启动Tomcat:除了容器

我想知道如何上传一个独立于依赖项的WAR文件。 例如,您上载所有依赖项并将它们保留在类路径中 然后你上传你的WAR文件,其中没有包含依赖项。 当您测试servlet时,这非常有用,因为您不必上传 一个大的WAR文件,每次您需要更正某些内容时都会进行一些小的更改

问题是,有时它有效,有时则无效

那么,有没有一个官方的正确方法来做到这一点呢


当然,只需将所有内容打包到WAR文件中就可以了。

如果WAR文件的依赖项不在WAR文件的范围内,那么每当您更新这些依赖项时,您都需要重新启动Tomcat:除了容器为您构建的依赖项之外,没有WAR文件的类路径(其中包括webapp的WEB-INF/classes和WEB-INF/lib/*.jar中的内容,以及servlet.jar等容器保证可用的所有库)

Tomcat允许您使用共享库目录,但在库更新时不会自动重新加载,这可能会导致您观察到的“不一致”行为


官方正确的做法是上传整个WAR文件:这就是它们的用途。

WAR文件是一个完整的web应用程序——如果没有依赖项,它将如何工作?当然,没有依赖项我无法工作,但你可以“上传”先上传依赖项,然后再上传web应用。因此,如果你在调试,每次做一个小改动时上传15kb而不是15Mb是非常有用的。对不起,我想我的问题不清楚……war文件是一个完整的web应用,包括它的依赖项。你将如何区分两者?一个简单的例子。如果你编写一个Jax Ws web服务使用Netbeans,您可以选择不在war文件中包含依赖项。此选项出现在项目的“属性-->库-->编译”选项卡中。然后,您可以在不包含依赖项的情况下构建应用程序。实际上,我删除了Metro 2.0 webservice堆栈,该堆栈将war大小减少了20mb以上,并在上载到服务器,它可以工作。这不会发生在其他依赖项上,这就是我问这个问题的原因。有正确的方法吗?那么,无论您部署的是什么,容器路径中都有库。这可能有效,也可能无效,这取决于所讨论的库。它还强制容器中的所有应用使用相同的版本,可能有效,也可能无效希望如此。上传东西后重新启动tomcat,我会尝试一下,只是为了调试。谢谢你的回答。