LoginSignup
0
0

More than 5 years have passed since last update.

WicketプロジェクトをGradleでビルドしたらMarkupNotFoundExceptionが発生

Posted at

別チームの人がWicketで作成したWebアプリをサーバに乗せてくれと頼まれたので、
「デプロイするだけでOKならいいですよー」と安請け合いしたら、以下を知らなくて意外とハマった

開発者から受け取ったもの

  • ソースコード一式
  • build.gradle

曰く、gardleでwar作れるようになってるので、作ったwar置けばOK!
早速言われたとおりに、gradle warを実行し、出来上がったwarファイルをWebサーバに配備

MarkupNotFoundException

配備したアプリにアクセスすると以下のエラーが発生

ERROR org.apache.wicket.RequestCycle - unexpected exception when handling another exception: Markup of type 'html' for component 'com.xxx.HomePage' not found. Enable debug messages for org.apache.wicket.util.resource to get a list of all filenames tried.: [Page class = com.xxx.HomePage, id = 1, version = 0]

どうやら「HTMLファイルがないよ」的なことをいっている。

サーバに配備されたアプリの、WEB-INF配下を見てみると確かにHTMLファイルが見当たらない

$ ll ${APP_HOME}/WEB-INF/classes/com/xxx/
合計 48
-rw-r--r-- 1 root root 1377 12月 13 14:45 2018 BasePage.class
-rw-r--r-- 1 root root  415 12月 13 14:45 2018 ErrorPage.class
-rw-r--r-- 1 root root  420 12月 13 14:45 2018 HomePage.class
-rw-r--r-- 1 root root 2703 12月 13 14:45 2018 WicketApplication.class
drwxr-xr-x 2 root root 4096 12月 13 14:56 2018 commons
drwxr-xr-x 2 root root 4096 12月 13 14:56 2018 dao
drwxr-xr-x 2 root root 4096 12月 13 14:56 2018 info
drwxr-xr-x 3 root root 4096 12月 13 14:56 2018 tools

受け取ったソースコード一式の中には、HTMLファイルは存在している模様

src
 └─main
    └─java
       └─com
          └─xxx
             │ commons
             │ dao
             │ info
             │ tools
             │ BasePage.html
             │ BasePage.java
             │ ErrorPage.html
             │ ErrorPage.java
             │ HomePage.html
             │ HomePage.java
             └─WicketApplication.java

原因

  • HTMLファイルがsrc/main/java配下に入っているのがダメ
    • Gradleの規約に沿っていないため、war作成時に含まれなかった
    • 以下のようなディレクトリ構成に変更することで解決
src
 └─main
    │─java
    │  └─com
    │     └─xxx
    │        │ commons
    │        │ dao
    │        │ info
    │        │ tools
    │        │ BasePage.java
    │        │ ErrorPage.java
    │        │ HomePage.java
    │        └─WicketApplication.java
    └─resources
      └─com
         └─xxx
            │ BasePage.html
            │ ErrorPage.html
            └─HomePage.html

まとめ

成果物は誰かに渡す前に動作確認すること!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0