EclipseIndigoとTomcatサーバーを使用して基本的なhelloworldプロジェクトをセットアップしようとしています。単純なサーブレットを使用して動的プロジェクトを作成しました。サーブレットをテストしましたが、正常に機能しました。次に、Mavenサポートを有効にして、pomにログバックを追加しました。サーブレットのdoGet
メソッドにロギングステートメントを配置しました。サーブレットを実行すると、ログバックjarがEclipse Tomcatインスタンスにコピーされていないため、バインディングが見つからないと文句を言います。私はここのどこかに公開された瓶を見つけることを期待していました:
${workspace}\.metadata\.plugins\org.Eclipse.wst.server.core\tmp0\
EclipseをWTP/Mavenで正しく動作させるにはどうすればよいですか?また、m2e-wtpコネクタを問題なくインストールしてみました。
チェックDeployment Assembly(プロジェクトのコンテキストメニュー)、マッピングが必要ですMaven Dependencies-> WEB-INF/lib。
ASP.NETのバックグラウンドから来ているので、特に自分で学習している場合、EclipseWTPとMavenでWebアプリを実行するのにどれだけの作業が必要かは衝撃的です。このクイックスタートガイドが、他の誰かがすぐに理解できるようになることを願っています。
Mavenを使用してEclipseWTPでhelloworldプロジェクトを機能させるには2つの方法があります。動的Webプロジェクトを作成してから、Mavenの性質を追加することも、その逆を行うこともできます。
更新サイトを備えたEclipseの前提条件
「Web、XML、Java EEおよびOSGiエンタープライズ開発」
http://download.Eclipse.org/releases/Indigo
「Eclipse用のMaven統合」
http://download.jboss.org/jbosstools/updates/m2Eclipse-wtp/
「WTPのMaven統合」
http://download.jboss.org/jbosstools/updates/m2Eclipse-wtp/
スタートアップ構成
Tomcat 7のコピーを http://Tomcat.Apache.org/download-70.cgi からインストールします。
ウィンドウ->設定->サーバー->ランタイム環境
オプション1:動的Webプロジェクトを作成してから、Maven Natureを追加します
新しいMavenプロジェクトを作成し、archetypeorg.Apache.maven.archetypes:maven-archetype-webappを選択します
Java EEパースペクティブに変更します。
新しいソースフォルダsrc\main\Javaを作成します。 Eclipseがこれを行うのに十分なほどスマートではなく、フォルダーの順序も正しくないことに注意してください。 src\main\Javaフォルダーはsrc\main\resourcesの後にリストされています。これは、後でプロジェクトのプロパティで手動で修正できます。
新しいサーブレットを作成します。順序が間違っているため、Eclipseがこのファイルを間違ったフォルダーsrc\main\resourcesにデフォルト設定する方法に注意してください。代わりに、手動でsrc\main\Javaを選択します。ウィザードの2ページ目のURLマッピングを/ *に変更して、テストを容易にします。
これでサーブレットの準備が整いましたが、サーブレットAPIへの依存関係は解消されていません。 A)プロジェクトへの依存関係としてサーブレットAPIを追加できます。または、B)Apache7.0のEclipseサーバー構成にバインドできます。
オプションAの場合、次の依存関係をpomに追加します。
。
_<dependency>
<groupId>org.Apache.Tomcat</groupId>
<artifactId>Tomcat-api</artifactId>
<version>7.0.${set this}</version>
<scope>provided</scope>
</dependency>
_
オプションBの場合:
http:// localhost:8080 / $ {artifact}のような空白のページが内部ブラウザに表示されます。
依存関係の公開のテスト:
Pomにjoda-timeを追加します。
以前にdoGetメソッド用に作成したサーブレットにこの行を追加し、必要な依存関係をインポートします。
。
_protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("The time is now: " + new DateTime().toString());
}
_
テストページをリロードすると、出力は次のようになります。
今の時間:2012-03-03T14:14:29.890-05:00
サーブレット3.0と注釈を試してみたい場合、これはデフォルトでは有効になっていません。理由はわかりません。最初に、これをpomに追加してMavenにJava 1.6を使用させます。そうしないと、pomを更新するたびに、構成がJava 1.5に戻ります。
_ <plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
_
[プロジェクトのプロパティ]-> [プロジェクトファセット]を開きます。 「動的Webモジュール」の下のバージョンを3.0に変更し、Javaバージョン1.6
Src\main\Javaにクラス名AnnotatedServletで新しいサーブレットを作成し、@ WebServletアノテーションがどのように自動作成されるかに注目してください。
オプション2:動的Webプロジェクトを作成してから、Maven Natureを追加します
response.getWriter().println("Another test");
「デプロイメント記述子」をダブルクリックし、この属性をルートWebアプリ要素に追加します_metadata-complete="false"
_
プロジェクトを右クリックし、「実行」->「サーバーで実行」を選択します
。
_<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
_
プロジェクトエクスプローラーでWebプロジェクトを右クリックし、[Maven]-> [プロジェクトの更新]を選択します。
同様の問題に直面し、Deployment Assemblyを正しく構成したにもかかわらず、それでも機能しませんでした。次に、[ウィンドウ]-> [設定]-> [Eclipse]-> Javaエンタープライズプロジェクト-> [Webプロジェクト]]の[展開]タブで、依存プロジェクトの管理がオフになっていることがわかりました。依存プロジェクトのjarをlibフォルダーにデプロイすると、すべてが魅力のように機能し、DeploymentAssemblyオプションをオフにすることもできます。