使用Tomcat而不使用Eclipse

4
我想使用Tomcat而不使用Eclipse。
我找不到任何使用命令行的Tomcat教程,它们都使用Eclipse。
我需要的是:
  • 创建WAR文件
  • 使用新的WAR文件重新启动Tomcat
  • 更新WAR文件(当我使用Eclipse编辑css/js文件时,无需刷新Tomcat)
最好使用命令行工具。我使用Ubuntu。
你有什么技巧或资源可以帮助我实现这个吗?

在Tomcat的bin目录下,使用"./catalina.sh restart"命令可以重启Tomcat,将restart替换为stop或start即可停止或启动Tomcat。创建war文件时,请使用Maven。 - NimChimpsky
3个回答

2
只需按照以下步骤进行操作:
  • 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)
    

1

补充一下@rai.shumar所说的,最近我也不得不找到这个答案。以下是我目前所学到的内容。

参考文献:

首先创建一个目录结构:

  • 创建一个名为“example”的目录,它将成为您的新项目的根目录。
  • 创建build目录
  • 创建build/classes目录
  • 创建dist目录
  • 创建src目录
  • 创建WEB-INF目录
  • 创建WEB-INF/lib目录

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

  • 将HelloMaster.java(重命名为HelloWorldExample.java)移动到src/目录下
  • 将LocalString*.properties文件放置于WEB-INF/classes目录下
  • 在“example”目录中创建一个空的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目录中


0

我目前使用没有eclipse的tomcat。我不确定IDE除了编写更漂亮的前端代码之外还能为你带来多少好处。这是一个不被许多人认同的观点。我也不是专业的Web程序员,我有点像个全能型程序员。

提示: 首先,始终使用您的Linux发行版机制和软件包管理系统来安装/管理您的软件,例如tomcat和相关库。我的开发环境是Fedora 17,因此我所做的一些操作可能是针对Fedora的。

通常,您会创建war文件(类似于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. 将编译后的类移动到您的war文件构建位置。 cp *.class build/WEB-INF/classes/

在编译之前最好先删除 *.class 文件。

  1. 进入该目录(通常我会将其命名为 build),然后执行 jar cvf myfoo.war *(查找如何创建 web.xml 文件,必须具有特定的目录层次结构)

  2. 部署您的 war 文件,我为了帮助热部署机制而进行 rm -rf 所有旧的 war 文件和 war 文件 cruftifoo 然后我

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

考虑服务于 tomcat(启动和停止),因为热部署有时无法正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接