我找不到任何使用命令行的Tomcat教程,它们都使用Eclipse。
我需要的是:
- 创建WAR文件
- 使用新的WAR文件重新启动Tomcat
- 更新WAR文件(当我使用Eclipse编辑css/js文件时,无需刷新Tomcat)
你有什么技巧或资源可以帮助我实现这个吗?
Put war file inside webapps directory of tomcat
Restart tomcat by running scripts inside bin directory from your terminal(shutdown.sh and startup.sh)
Access application by launching browser and then putting below URL
localhost:8080/app/index.jsp ( if generated app.war)
localhost:8080/index.jsp (if you generated ROOT.war)
补充一下@rai.shumar所说的,最近我也不得不找到这个答案。以下是我目前所学到的内容。
参考文献:
首先创建一个目录结构:
然后我添加了一些测试文件(通过从apache tomcat示例中复制)
项目结构应如下所示:
~/example$ tree .
├── build
│ └── classes
│
├── build.xml
├── dist
│
├── src
│ └── HelloMaster.java
└── WEB-INF
├── classes
│ ├── LocalStrings_en.properties
│ ├── LocalStrings_es.properties
│ ├── LocalStrings_fr.properties
│ ├── LocalStrings.properties
│ └── LocalStrings_pt.properties
├── lib
└── web.xml
然后我在WEB-INF / web.xml文件中添加了以下内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>HelloMaster</servlet-name>
<servlet-class>HelloMaster</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloMaster</servlet-name>
<url-pattern>/hellomaster</url-pattern>
</servlet-mapping>
</web-app>
<?xml version="1.0" ?>
<project name="AntExample1" default="war">
<!-- hack! setting classpath explicitly to tomcat's classes -->
<!-- export CLASSPATH=$CLASSPATH:/path_to_apache_tomcat_classes/classes/ -->
<path id="compile.classpath">
<fileset dir="WEB-INF/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<mkdir dir="build/classes"/>
<mkdir dir="dist" />
</target>
<target name="compile" depends="init" >
<javac destdir="build/classes" debug="true" srcdir="src">
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="war" depends="compile">
<war destfile="dist/AntExample.war" webxml="WEB-INF/web.xml">
<fileset dir=""/>
<lib dir="WEB-INF/lib"/>
<classes dir="build/classes"/>
</war>
</target>
<target name="clean">
<delete dir="dist" />
<delete dir="build" />
</target>
</project>
注意,我还不知道如何在没有明确设置的情况下设置类路径:
> export CLASSPATH=$CLASSPATH:/path_to_apache_tomcat_classes/classes/
> ant #-- this should create the war file in the dist dir
接下来,war文件应命名为dist / AntExample.war,并且您可以将其复制到您的webapps目录中
我目前使用没有eclipse的tomcat。我不确定IDE除了编写更漂亮的前端代码之外还能为你带来多少好处。这是一个不被许多人认同的观点。我也不是专业的Web程序员,我有点像个全能型程序员。
提示: 首先,始终使用您的Linux发行版机制和软件包管理系统来安装/管理您的软件,例如tomcat和相关库。我的开发环境是Fedora 17,因此我所做的一些操作可能是针对Fedora的。
通常,您会创建war文件(类似于tar归档文件),并将它们部署到Java应用服务器或容器中,例如tomcat。对于仅限于servlet的情况,以下是我在批处理脚本中所做的操作。一般来说,所有这些服务器都有共同的API,以及一些专有的内容。理论上,如果您坚持使用共同的API,您的servlet应该可以在大多数Java应用服务器上运行。
查找您需要编译的API,其中foo.java是您的servlet使用的POJO类: javac -cp /usr/share/java/tomcat6-servlet-api.jar foo.java servlet1.java servlet2.java
将编译后的类移动到您的war文件构建位置。 cp *.class build/WEB-INF/classes/
在编译之前最好先删除 *.class 文件。
进入该目录(通常我会将其命名为 build),然后执行 jar cvf myfoo.war *(查找如何创建 web.xml 文件,必须具有特定的目录层次结构)
部署您的 war 文件,我为了帮助热部署机制而进行 rm -rf 所有旧的 war 文件和 war 文件 cruftifoo 然后我
sudo cp myfoo.war /var/lib/tomcat6/webapps/
考虑服务于 tomcat(启动和停止),因为热部署有时无法正常工作。