4

我想使用 Tomcat 而没有 Eclipse。

我找不到任何带有命令行的 Tomcat 教程。他们都使用 Eclipse。

我需要的是:

  • 创建 WAR 文件
  • 使用新的 WAR 文件重新启动 Tomcat

  • 更新 WAR 文件(当我用 Eclipse 编辑 css/js 文件时,我不需要刷新 Tomcat)

最好的办法是使用命令行。我正在使用 Ubuntu。

您有任何提示或资源来实现这一目标吗?

4

3 回答 3

2

只需按照以下步骤操作:

  • 将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)
    
于 2013-01-22T16:29:13.863 回答
1

只是为了添加@rai.shumar 所说的内容,我最近也不得不找到这个。这是我到目前为止所学到的。

参考:

首先创建一个目录结构:

  • 创建一个“示例”目录,它将成为您新项目的根目录。
  • 创建构建目录
  • 创建构建/类目录
  • 创建 dist 目录
  • 创建 src 目录
  • 创建 WEB-INF 目录
  • 创建 WEB-INF/lib 目录

然后我添加了一些测试文件(通过从 apache tomcat 示例中复制它)

  • HelloMaster.java(重命名为 HelloWorldExample.java)到 src/
  • LocalString*.properties 到 WEB-INF/classes
  • 在“example”-dir 中创建一个空的 build.xml 文件
  • 在 WEB-INF 目录中创建一个空的 web.xml 文件

项目结构应如下所示:

~/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 目录

于 2014-07-14T10:47:45.853 回答
0

我目前使用没有eclipse的tomcat。除了编码更漂亮的前端之外,我不确定 IDE 是否能给你带来很多好处。那是一个没有多少人可以分享的观点。我也不是专业的网络程序员,我是一个万事通的程序员。

提示:首先,始终使用你的 linux 发行版的机制和包管理系统来安装/管理你的软件,在这种情况下是 tomcat 和相关的库。我的开发箱是 Fedora 17,所以我做的一些事情可能是以 Fedora 为中心的。

通常,您制作 warfile(如 tar 存档)并将它们部署到 java 应用程序服务器或容器(如 tomcat)。仅对于 servlet,这是我在批处理脚本中所做的。一般来说,所有这些服务器都有共同的 API,然后是一些专有的东西。理论上,如果您坚持使用通用 API,您的 servlet 应该可以在大多数 Java 应用服务器上运行。

  1. 找到您需要编译的 api,其中 foo.java 是您的 servlet 使用的 POJO 类: javac -cp /usr/share/java/tomcat6-servlet-api.jar foo.java servlet1.java servlet2.java

  2. 将已编译的类移动到您的 warfile 构建点。cp *.class build/WEB-INF/classes/

在构建之前 rm *.class 是个好主意。

  1. 进入该目录(我通常将其命名为 build)并 jar cvf myfoo.war *(查找如何制作 web.xml 文件,您必须具有特定的目录层次结构)

  2. 部署你的warfile,我帮助热部署机制的是 rm -rf all the old warfile 和 warfile cruftifoo 然后我

sudo cp myfoo.war /var/lib/tomcat6/webapps/

我正在考虑维修 tomcat(启动和停止),因为热部署有时不会。

于 2013-01-22T16:31:03.330 回答