Uploaded image for project: 'Mobylet'
  1. Mobylet
  2. MOBYLET-113

[mobylet-core] リサイズ時に画像パスが見つからない場合は404Not Foundとしたい

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.0.6
    • Affects Version/s: 1.0.5
    • Component/s: mobylet-core
    • None

      mobyletの画像リサイズ機能ですが、
      存在しない画像へのパスが指定されていると
      下記のようなエラー(500エラー)が発生します。

      ・相対パスで存在しない画像を指定した場合
      java.lang.IllegalArgumentException: input == null!
        javax.imageio.ImageIO.read(ImageIO.java:1322)
        org.mobylet.core.image.impl.MobyletImageScaler.scale(MobyletImageScaler.java:53)
        org.mobylet.core.http.image.MobyletImageScaleServlet.doGet(MobyletImageScaleServlet.java:124)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
        org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
        org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
        org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
        org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:159)
        org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
        org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:99)
        org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
        org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
        org.mobylet.core.http.MobyletFilter.processFilter(MobyletFilter.java:121)
        org.mobylet.core.http.MobyletFilter.doFilter(MobyletFilter.java:74)

      ・絶対パスで存在しない画像を指定した場合
      org.mobylet.core.MobyletRuntimeException: ストリームをオープンできません path = http://hogehoge.jp/hoge.gif
        org.mobylet.core.image.impl.MobyletImageReader.getStream(MobyletImageReader.java:114)
        org.mobylet.core.http.image.MobyletImageScaleServlet.doGet(MobyletImageScaleServlet.java:92)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
        org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
        org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
        org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
        org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:159)
        org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
        org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:99)
        org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
        org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
        org.mobylet.core.http.MobyletFilter.processFilter(MobyletFilter.java:121)
        org.mobylet.core.http.MobyletFilter.doFilter(MobyletFilter.java:74)

      存在しない画像へのパスが指定されている場合は
      404エラーとするのが正しい動きのように思いますが如何でしょうか。
      使用しているバージョンは下記のとおり、いずれも1.0.5です。

      mobylet-charset-1.0.5.jar
      mobylet-core-1.0.5.jar
      mobylet-taglibs-1.0.5.jar
      mobylet-mail-1.0.5.jar
      mobylet-s2extension-1.0.5.jar
      mobylet-gaeextension-1.0.5.jar

      ここから要望です。

      動的にパスを生成している場合等で、存在しない画像へのパスが指定されている場合は
      下記のような挙動として頂く事は可能でしょうか。

      ・mobylet.image.propertiesに存在しない画像へのパスが
       imageScalerへ指定されていた場合に読み込む画像を
       下記のような感じで予め定義しておき、
       下記で定義した画像も存在しない場合は404エラーとする

      1. 画像が存在しなかった場合に読み込む画像の定義を行なう
      2. 絶対パス、相対パスで指定可能且つ${docBase}や${contextPath}といった予約変数も使用可能とする
      3. image.source.no.existsというのは仮の項目名です
      4. もっと相応しい名前があれば変更して下さい
        image.source.no.exists=non.jpg

            Assignee:
            stakeuchi stakeuchi
            Reporter:
            stakeuchi stakeuchi
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: