何が起きたか
EclipseでJavaのWebアプリを作成中です。
出来上がったアプリ(動的プロジェクトで作成)はこんなフォルダ構成です。
TestWeb(コンテキスト・ルート。プロジェクト名。)
∟.settings
∟build
∟src
∟test
∟ ・ListServlet.java(このファイルをサーバーで実行)
・UserDao.java
・DBAccess.java
∟WebContent
∟META-INF
∟web
∟・list.jsp
∟WEB-INF
∟lib
∟・mysql-connector-j-9.1.0.jar
∟・ web.xml
これをWARファイルとしてローカルPCにエクスポートしました。
(Eclipse上でTestWebフォルダを右クリック→エクスポート→WARファイル)
(ファイル名は TestWeb.war)
その後、EclipseのTestWebプロジェクトを削除し(ローカルPCに残っている同プロジェクトも削除し)
先ほどのTestWeb.warをEclipseへインポートしました。
すると、フォルダ構成が下記のように変わっていました。
TestWeb(コンテキスト・ルート。プロジェクト名。)
∟.settings
∟build
∟src
∟main
∟java
∟test
∟ ・ListServlet.java(このファイルをサーバーで実行)
・UserDao.java
・DBAccess.java
∟webapp
∟META-INF
∟web
∟・list.jsp
∟WEB-INF
∟lib
∟・mysql-connector-j-9.1.0.jar
∟・ web.xml
変更されてしまったポイントは以下のとおりです。
- 変更前:TestWeb>src>test>各javaファイル
変更後:TestWeb>src>main>java>test>各javaファイル
→勝手に「>main>java」が挟まってきた。
- 変更前:TestWeb>WebContent
変更後:TestWeb>src>main>webapp
→フォルダ名「WebContent」が勝手に「webapp」に変更された。
→さらに、TestWeb直下から「TestWeb>src>main」配下に移動された。
なんでー!!
解決方法探し→未解決
Eclipseで動的プロジェクトを新規作成した際に、デフォルトではソースの配置場所が「コンテキストルート名>src>main>java」になっている(私のEclipseはそうなっている)ので、このデフォルトの設定が影響しているのだろうとは予想するのですが、「warファイル フォルダ構成 変わる」等でググっても適当な答えを見つけられませんでした。
今は謎のまま、インポート後に元のフォルダ構成になるよう手作業で修正しています。
(手修正の内容:
・EclipseのGUI上で、作成済javaファイルたちが入ったtestフォルダを TestWeb>src直下に移動
・フォルダwebappをWebContentに名前変更しTestWeb直下に移動
・不要なフォルダ(src直下の"main>java")を削除
・TestWeb右クリックで[プロパティ>Javaのビルド・パス]の[TestWeb/src/main/java]を[除去]。続いて[フォルダーの追加]→[src」を選択して適用。
・最後にTestWeb右クリックで「リフレッシュ」
)
フォルダ構成を勝手に変更されずにWARファイルをエクスポート/インポートできる方法が見つかったら、ここに追記します。(2025/1/11(土))