我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 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.) 我应该在其中包含 .java 文件dist/WEB-INF/classes/...
还是只在其中放置 .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 实例时似乎必不可少。myapp.xml
在 WAR 文件中是必需的吗?或者 WAR 文件的结构是否做了myapp.xml
原本会做的事情?
请注意,我的 servlet 类控制对我的 JSP 文件的所有访问,并且每个 servlet 使用以下语法实例化自己的 JSP:
RequestDispatcher jsp = context.getRequestDispatcher("/WEB-INF/jsp/home.jsp");
所有对站点内容的访问都是通过 web.xml 的 servlet 映射定义的 URL。
预先感谢您的帮助。我正在尝试正确学习第一个,以便我可以第一次很好地制作后续的 WAR 文件。我相信其他人以后会需要这些答案作为资源。