どうしてもAutoBuildを利用することが必要なため、当初は
/META-INF/org.seasar.mayaa.provider.ServiceProviderに以下の設定を追加することで、暫定的に動作させております。
<provider>
<engine>
...
<parameter name="autoBuild.contextPath" value="/projects-context-path"/>
...
</engine>
</provider>
現在は、MayaaServletの代わりに、(上記の設定を削除した上で)次のようなサーブレットを使用しております。
import org.seasar.mayaa.impl.AutoPageBuilder;
import org.seasar.mayaa.impl.MayaaServlet;
public class MayaaServletExt extends MayaaServlet {
private static final long serialVersionUID = 1L;
@Override
protected void initAutoPageBuilder()
{
String contextPath = getServletContext().getContextPath();
AutoPageBuilder.INSTANCE.init(getServletConfig(), contextPath);
}
}
MayaaServletの初期化を行う際に、AutoBuilder#init(ServletContext)ではなく、AutoBuilder#init(ServletContext,String)を呼び出すように変更することで、「/」以外のコンテキストパスを持つアプリケーションでも、動作するようです。
ServletContext#getServletContextName() を AutoPageBuilder#init へ渡すように修正。(rev.3431)