- PR -

WTP(WST)使用時のプロジェクトのコピー方法(何が足りない?)

1
投稿者投稿内容
FZR
常連さん
会議室デビュー日: 2007/09/10
投稿数: 42
投稿日時: 2008-06-26 11:48
いつもお世話になっています。

今まではTomcatプラグイン + context.xmlの組み合わせで開発することが多かったのですが、今回、Eclipse 3.2.2 + callistoで開発を進めています。途中まで作成し動作しているプロジェクトを単純にコピー(パッケージエクスプローラ上でコピー&ペースト)して、別のコンテキストとして動作させたいのですが上手くいきません。

java.lang.IllegalArgumentException: ドキュメントベース xxx が存在しない、又は読めないディレクトリです...と言われてしまいます。

server.xmlにコンテキスト行を追加し(source="org.eclipse.jst.j2ee.server:xxx"って何なのでしょう?)、プロジェクトプロパティのWeb Project Settingsも修正したのですが、同様のエラーが出力され認識してくれません。

org.eclipse.wst.common.componentの<wb-module deploy-name="xxx">を手で修正するとできるような記事を見かけたのですが、そちらを修正しても同様です。

ワークスペースの.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps配下に該当プロジェクトのコピーを作成し動作させるためにはどのようにしたら良いのでしょうか?
99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2008-07-03 04:44
1.server.xml
source="org.eclipse.jst.j2ee.server:xxxxxx" について
 サーバータブ操作の構成プロジェクトに表示されているプロジェクト名と対応します
 3の操作によりコードが追加・削除されます


2.webapps配下に該当プロジェクトのコピーを作成し動作させる
 server.xml の<Context> source=の記述が不要と思います
 コピーは該当プロジェクトのコンテキスト以下が対象です


3.コピーしなくても現在のプロジェクトをサーバに追加すればいいように思います
 操作
 サーバータブ
 サーバを右クリック
 プロジェクトの追加および除去
  ここにWEBのプロジェクトが表示される
 前提
 追加するWEBのプロジェクトを開いていること
FZR
常連さん
会議室デビュー日: 2007/09/10
投稿数: 42
投稿日時: 2008-07-03 10:29
# 99riさん

メッセージありがとうございます。
server.xmlのsource="org.eclipse.jst.j2ee.server:xxxxxx" については、一度その操作の前後で違いを見てみたいと思います。ありがとうございました。

コピー作業そのものは、既存のプロジェクトに手を加えずに、コードに手を加えて動作の比較をしてみたいと言う思いから、以前からたびたび使用していました。なので、コピー作業が発生した上で、その後どのように操作したらTomcatプロジェクトとして動作するのか調べていました。(今まではTomcatプラグインを使用していたので特に意識していなかった)

Serverにプロジェクトを追加する件ですが、org.eclipse.wst.common.componentの<wb-module deploy-name="xxx">を変更しないと、正しいプロジェクト名が表示されません。例えば、既存のsampleプロジェクトをコピーし、そのままAdd and Remove Projectsを選択しても、表示されたダイアログの左右のペイン両方にsampleプロジェクトが表示される形になります。

そこでorg.eclipse.wst.common.componentの<wb-module deploy-name="xxx">を変更すると、何故かビルドパスからStruts関連のライブラリが外れ、途端にエラーアイコンがClassの頭に表示されます。

動的Webプロジェクトとしてプロジェクトを作成し、~/WEB-INF/lib配下にjarをコピーすると自動的にWeb App Libraries配下に追加されていきますが、上記の事象が発生したあと別途マニュアル操作でビルドパスにライブラリを追加しますと、JREライブラリやTomcatライブラリ、Web App Libraries等と同レベルの階層で表示されてしまいます。

これはEclipse 3.2だからこういう動きなのか...と、疑いたくなります。

結局未だ解決に至らずってところです。
99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2008-07-04 06:48
引用:
Serverにプロジェクトを追加する件ですが、org.eclipse.wst.common.componentの<wb-module ="xxx">を変更しないと、正しいプロジェクト名が表示されません


たしかに同じ名前で表示されました
プロジェクト名ではなくdeploy-nameを表示しているようです

引用:
org.eclipse.wst.common.componentの<wb-module deploy-name="xxx">を変更すると、何故かビルドパスからStruts関連のライブラリが外れ、途端にエラーアイコンがClassの頭に表示されます。


再現できませんでした

引用:
マニュアル操作でビルドパスにライブラリを追加しますと、JREライブラリやTomcatライブラリ、Web App Libraries等と同レベルの階層で表示されてしまいます。



再現できました .classpathの内容を表示しているようです
WEB-INF/lib にコピーしたあとはビルドパスからはずしてもいいと思います

こちらで行った結果です
環境は windows eclipse3.2 tomcat5.5 です
org.eclipse.wst.common.component変更でOKでした
プロジェクトを一度閉じて、再度開いてみるといいかと思います

1.プロジェクトのコピー
操作
プロジェクトエクスプローラでプロジェクトのコピーを行う
操作結果
コピーしたプロジェクト(コピー - Project名)が表示される

2.コピーしたプロジェクトの設定変更
コピーしたプロジェクトのフォルダ配下
.settings/org.eclipse.wst.common.component

<wb-module deploy-name=変更する>
<property name="context-root" value="変更する

3.コピーしたプロジェクトを閉じる
4.閉じたプロジェクトを再度開く
5.サーバに追加する
操作
サーバータブ
サーバを右クリック
プロジェクトの追加および除去
 ここにWEBのプロジェクトが表示される
 ■確認
  2で変更したdeploy-nameが表示されること
構成プロジェクトに追加する
追加結果確認
 サーバー server.xmlに <Context の行が追加されていること
   docBase=2で設定したdeploy-name path=2で設定したcontext-root
   org.eclipse.jst.j2ee.server:xxxx xxxxは2で設定したdeploy-name
6.プロジェクトをクリーンしてビルド
7.サーバータブからサーバを起動


FZR
常連さん
会議室デビュー日: 2007/09/10
投稿数: 42
投稿日時: 2008-07-04 16:30
# 99riさん

早速のレスポンスありがとうございます。
結果から申し上げますと、指示いただいた順番で作業したところ無事動作するようになりました。ありがとうございました。m(_ _)m

ビルドパスから~/WEB-INF/lib配下のライブラリがWeb App Librariesから外れる件ですが、私は先ずプロパティダイアログのWeb Project Settings(<property name="context-root" value="xxx"/>)を変更してから、エディタ等で<wb-module deploy-name="xxx">を変更していたのですが、そうすると事象が発生するようです。

プロパティダイアログを使用せずに、<property name="context-root" value="xxx"/>と<wb-module deploy-name="xxx">も同時に変更してやると、Web App Librarie配下にリストアップされていたライブラリもそのまま変化はありませんでした。

そのままですとプロジェクトダイアログの内容が古いままなので、仰るようにプロジェクトの閉じる/開くをするか、またはF5の最新化をするだけでOKのようです。

正直申し上げて、プロジェクトの設定ファイルをEclipseを経ずに直接触るのは抵抗はありますし、何故<wb-module・・・>と<property name・・・>を同時に変更してくれないのか、何故Web App Librariesから外れるのか等と言った疑問は残りますが、質問本来の目的は果たせますので良かったと思います。

どうもありがとうございました。

Ganymedeは上手くやってくれるのかなぁ?
1

スキルアップ/キャリアアップ(JOB@IT)