我正在创建我的第一个WAR文件。我一直在尝试使用ant buildfile语法,我的构建文件的第一部分从我的Eclipse项目获取内容并将其放入/dist
文件夹,然后在后续步骤中将其压缩到WAR文件中。
我需要帮助构造输出,以便WAR文件在Tomcat 7服务器执行的正确位置具有所有必需的内容。请给我一些松懈,因为这是我的第一个WAR文件。
我的构建文件的当前草稿生成一个具有以下结构的dist文件夹:
dist/META-INF/MANIFEST.MF
dist/WEB-INF/classes/myapp/package1/ (contains 12 .class files)
dist/WEB-INF/classes/myapp/package2/ (contains 7 .class files)
dist/WEB-INF/jsp (contains 5 .jsp files)
dist/WEB-INF/lib (contains 16 .jar files)
dist/WEB-INF/web.xml
dist/image1.gif
dist/image2.gif
dist/image3.gif
dist/image4.gif
我如何更改结构以便Tomcat 7服务器可以使用生成的WAR文件向最终用户提供我的Web应用程序?
具体而言,
1.)我应该在dist/WEB-INF/classes/...
中包含.java文件还是只将.class文件放在那里?
2.)我应该将JRE系统库JAR添加到dist/WEB-INF/lib
吗?这些系统JAR位于我的Eclipse工作区中,但我不知道在WAR文件中是否需要它们
3.)web.xml
在正确的位置?
4.)我的.gif文件应该保留在根目录中吗?
5.)我的.jsp文件是否在正确的位置?
6.)myapp.xml
去哪儿了? myapp.xml
位于Eclipse工作区的根目录中,在将myapp加载到Tomcat服务器的localhost实例时似乎很重要。 WAR文件中是否需要myapp.xml
?或者WAR文件的结构是否会执行myapp.xml
否则会执行的操作?
请注意,我的servlet类控制对JSP文件的所有访问,每个servlet都使用以下语法实例化自己的JSP:
RequestDispatcher jsp = context.getRequestDispatcher("/WEB-INF/jsp/home.jsp");
对网站内容的所有访问都是通过web.xml的servlet映射定义的URL。
提前感谢您的帮助。我正在尝试正确地学习第一个,以便我可以在第一次做好后续的WAR文件。我相信其他人以后需要这些答案作为资源。
答案 0 :(得分:4)
我会尽我所能:
1.。)我应该在dist / WEB-INF / classes /中包含.java文件,还是只在那里放入.class文件?
这里你只需要.class文件。
2.。)我应该将JRE系统库jar添加到dist / WEB-INF / lib中吗?
不应该需要。
3.。)web.xml在正确的位置?
看起来不错。
4。)我的.gif文件应该保留在根目录中吗?
虽然没有必要,但我更喜欢“image.jar”(或“resource.jar”或其他什么)以保持整洁。
5.。)我的.jsp文件是否在正确的位置?
不确定,但我认为jsp目录通常会在WEB-INF
之外的某个级别,直接在dist
文件夹中。
6。)myapp.xml在哪里?
我不知道这是什么,所以我不能说。
答案 1 :(得分:1)
在这里寻找一个很好的解释:
http://www.openscope.net/2010/01/25/war-deployment-file-structure/
具体来说,只有.class文件进入/ classes目录,只有.jars进入/ lib目录。除了那些和web.xml之外,其他所有内容(即非Java内容,如html,css,js,其他文件)都可以放在根目录中,并且可以在部署的应用程序URL的根URL访问。