Struts2は必ずexecuteメソッドを呼ぶわけではない

Struts2のサンプルを作り始めたときに呼ばれるメソッドで詰まった話。標準では必ずexecuteメソッドが呼ばれると思っていたのだけれどそうでもないらしい。

struts2-blank.warからサンプルを作り始めたときは特に問題にはならなかったのだけれど、struts2-rest-showcase.warから作り始めたたらexecuteメソッドが呼ばれない。かわりにindexメソッドを呼ぼうとする。

色々調べてみるとこのサイトにヒントがありました。

The problem is resolved, I had to remove the struts2-rest plugin. 

試しにstruts2-rest-plugin-2.3.16.3.jarを削除してみると確かにexecuteが呼ばれる。restサービスを作りやすくするぐらいの認識しかなったのだけれどどのように動くか全然抑えてなかったです。

公式サイトを見てみるとURLがどのようなルールでActionに結びつくのかが書いてある。『idパラメータがなければindexメソッド呼ぶよ』とかとか。

他にstruts2-rest-showcase.war内のstruts.xml見るとdefault.parent.packageが”rest-default”だったりと色々と考慮しなさ過ぎていたみたいです。