我想使用 Tomcat 而没有 Eclipse。
我找不到任何带有命令行的 Tomcat 教程。他们都使用 Eclipse。
我需要的是:
- 创建 WAR 文件
使用新的 WAR 文件重新启动 Tomcat
更新 WAR 文件(当我用 Eclipse 编辑 css/js 文件时,我不需要刷新 Tomcat)
最好的办法是使用命令行。我正在使用 Ubuntu。
您有任何提示或资源来实现这一目标吗?
只需按照以下步骤操作:
将war文件放在tomcat的webapps目录中
通过从终端( shutdown.sh 和 startup.sh)运行 bin 目录中的脚本来重新启动 tomcat
通过启动浏览器然后输入以下 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>
build.xml 是最重要的一个:
<?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 是否能给你带来很多好处。那是一个没有多少人可以分享的观点。我也不是专业的网络程序员,我是一个万事通的程序员。
提示:首先,始终使用你的 linux 发行版的机制和包管理系统来安装/管理你的软件,在这种情况下是 tomcat 和相关的库。我的开发箱是 Fedora 17,所以我做的一些事情可能是以 Fedora 为中心的。
通常,您制作 warfile(如 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
将已编译的类移动到您的 warfile 构建点。cp *.class build/WEB-INF/classes/
在构建之前 rm *.class 是个好主意。
进入该目录(我通常将其命名为 build)并 jar cvf myfoo.war *(查找如何制作 web.xml 文件,您必须具有特定的目录层次结构)
部署你的warfile,我帮助热部署机制的是 rm -rf all the old warfile 和 warfile cruftifoo 然后我
sudo cp myfoo.war /var/lib/tomcat6/webapps/
我正在考虑维修 tomcat(启动和停止),因为热部署有时不会。