4

Eclipse なしで Tomcat を使用したいと考えています。

コマンド ラインを使用した Tomcat のチュートリアルが見つかりません。それらはすべてEclipseを使用しています。

私が必要とするのは:

  • WAR ファイルの作成
  • 新しいWARファイルでTomcatを再起動します

  • WAR ファイルの更新 (Eclipse で css/js ファイルを編集する場合、Tomcat を更新する必要はありません)

コマンドラインを使用するのが最善です。私はUbuntuを使用しています。

これを達成するためのヒントやリソースはありますか?

4

3 に答える 3

2

以下の手順に従ってください。

  • tomcat のwebappsディレクトリ内に war ファイルを配置します。

  • 端末から bin ディレクトリ内のスクリプトを実行して tomcat を再起動します ( shutdown.sh および startup.sh )

  • ブラウザを起動し、以下の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ディレクトリを作成
  • ソースディレクトリを作成
  • 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 があなたに多くをもたらすかどうかはわかりません。それは、多くの人が共有することのできない意見です。私は Web プログラマーの専門家でもありません。何でもありのプログラマーです。

ヒント: 最初に、常に Linux ディストリビューションのメカニズムとパッケージ管理システムを使用して、ソフトウェア (この場合は tomcat と関連するライブラリ) をインストール/管理します。私の開発ボックスは Fedora 17 なので、私が行っていることのいくつかはおそらく Fedora 中心です。

一般に、warfile (tar アーカイブなど) を作成し、それらを Java アプリケーション サーバーまたは tomcat などのコンテナーにデプロイします。サーブレットの場合のみ、バッチ スクリプトで行うことを次に示します。一般的に言えば、これらすべてのサーバーには共通の API があり、独自のものもあります。理論的には、一般的な API に固執する場合、サーブレットはほとんどの Java アプリ サーバーで実行する必要があります。

  1. コンパイルする必要がある API を見つけます。ここで、foo.java はサーブレットで使用される POJO クラスです: javac -cp /usr/share/java/tomcat6-servlet-api.jar foo.java servlet1.java servlet2.java

  2. コンパイルされたクラスを warfile ビルド スポットに移動します。cp *.class build/WEB-INF/classes/

ビルドする前に *.class を rm することをお勧めします。

  1. そのディレクトリに移動し(通常はビルドに名前を付けます)、jar cvf myfoo.war *(web.xmlファイルの作成方法を探します。必要な特定のディレクトリ階層があります)

  2. warfile をデプロイします。ホット デプロイ メカニズムを支援するために行うことは、すべての古い warfile と warfile cruftifoo を rm -rf してから、

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

ホットデプロイが時々そうでないので、私はTomcatのサービス(開始と停止)を考えています。

于 2013-01-22T16:31:03.330 に答える