关于java Web Project引包的问题
这里要说的是Web Project如何合理引入jar包的问题。
Web Project是被Web容器使用的,如何合理的引入jar包实际上就是如何让一个Web Project在所有Web容器都能跑起来。
常用的Web容器有jetty、tomcat、jboss、weblogic。
首先来分析Web Project的结构:有存储java文件的src文件夹,存储class文件的bin文件夹,存储web工程的webroot/webapp文件夹。
Web容器中部署的是webroot/webapp文件夹,很多时候,这个文件夹会被打包成War包发布。
因为Web Project在Web容器上部署的只是webroot/webapp文件夹,只剩下webroot/WEB-INF/lib下的jar包。所以,我们绝大部分jar要放在webroot/WEB-INF/lib下。
同理web容器只能运行webroot/WEB-INF/classes下的class文件。所以,我们要把默认指定在bin中的class文件指定到webroot/WEB-INF/classes下。
好了,貌似大功告成了!
其实并非如此,如tomcat,他本身就带有一个很全的jar包,如servlet-api-2.5-20081211.jar。tomcat有这个jar包,那么webroot/WEB-INF/lib下就不能再有了,不然该项目在tomcat中就运行不起来。但是src的java文件中又使用了servlet-api-2.5-20081211.jar。怎么办,编译都不通过啊。这时候就只能在根目录下的lib中再放一个servlet-api-2.5-20081211.jar,而java中引用这个路径的jar包,使编译能够通过。