[MAYAA-58] autoBuildでcontextPathが"/"以外の場合、./../~の相対パス絶対化処理が正しく動作しない Created: 2008-12-19  Updated: 2009-05-17  Resolved: 2009-05-17

Status: Resolved
Project: Mayaa
Component/s: Mayaa
Affects Version/s: 1.1.22
Fix Version/s: 1.1.25

Type: Bug Priority: Major
Reporter: suga Assignee: suga
Resolution: Fixed Votes: 1
Labels: None


 Description   

autoBuildでcontextPathが"/"以外の場合、./../~の相対パス絶対化処理が正しく動作しない。

contextPath に関係なく "/" が渡されているかのように動作する。



 Comments   
Comment by suga [ 2009-05-17 ]

ServletContext#getServletContextName() を AutoPageBuilder#init へ渡すように修正。(rev.3431)

Comment by suga [ 2009-05-17 ]

ありがとうございます。
この情報を元に修正しました。

Comment by Yumeto Yamagishi [ 2009-05-16 ]

どうしても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)を呼び出すように変更することで、「/」以外のコンテキストパスを持つアプリケーションでも、動作するようです。

Generated at Sat Apr 27 09:43:20 JST 2024 using Jira 9.15.0#9150000-sha1:9ead8528714127d8cfabf2446010d7e62c0a195c.