1

Tomcat で Spring MVC アプリケーションを正常にデプロイして実行しました。管理コンソールからJNDIデータソースを設定したいという理由だけで、それをglassfishに移動しようとしています。

ここで、war ファイルを Glassfish にデプロイしてアプリケーションを起動すると、次のようにセットアップされたウェルカム ファイルが正常に起動されますweb.xml

<welcome-file-list>
    <welcome-file>home</welcome-file>
</welcome-file-list>

この時点でのブラウザ上のリンクは次のとおりです。

http://localhost:8080/ContextRoot

ウェルカム ページには、次のようなリンクがあります。

<a href="orders">Manage Orders</a>

そして、そのURLにコントローラーをマップしました:

@Controller
@RequestMapping("/orders")
public class OrderItemController {

    @RequestMapping(method = RequestMethod.GET)
    public String displayTables(Model model, 
            @RequestParam(value="message", required = false) String message) {

        occupiedTables = tableService.getOccupiedTables();
        model.addAttribute("message", message);
        model.addAttribute("occupiedTables", occupiedTables);
        return "orderItem";
    }
}

しかし、ordersそのページのリンク ( ) をクリックすると、コンテキスト ルートがなくなり、次のものが残ります。

http://localhost:8080/orders

そのため、コンテキスト ルートが表示されなくなったため、アプリケーション自体が見つかりません。そして、404エラーが発生します。

私の質問は、Tomcat から Glassfish にアプリケーションを移動する際に変更を加える必要があるかどうかです。インターネットで検索した後、次の内容でアプリケーションに とglassfish-web.xml並行してを追加しました。web.xml

<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
    <context-root>/ContextRoot</context-root>
</glassfish-web-app>

しかし、それは役に立ちません。また、グラスフィッシュ管理コンソールでアプリケーションの一部としてリストされているコンテキスト ルートも確認できます。

ここで何が問題なのですか?私は何か他のものを見逃していますか?


更新

Glassfish 管理コンソールでデフォルトの Web モジュールを設定すると、次のようになります。

「構成」 -> 「仮想サーバー」 -> 「サーバー」 -> 「デフォルト Web モジュール」

その後、すべてが正常に機能しています。コンテキスト ルートはまったく必要ありません。そのため、アプリケーションのウェルカム ファイルには次の場所からアクセスできます。

http://localhost:8080

ordersリンクをクリックすると、次のページに移動します。

http://localhost:8080/orders

アプリケーションはデフォルトであり、コンテキストルートは現在必要ないため、これは正常に機能しています。

さて、アプリケーションをデフォルトにし、コンテキストルートを明示的に与えずにこれを行う方法はありませんか?

4

0 に答える 0