[Seasar-user:20015] Re: [mobylet] テンプレートにmayaaを使用するとjava.lang.ClassNotFoundException: org.mobylet.gae.taglibs.GaeAutoScaleImageTagが発生する

Shin Takeuchi [E-MAIL ADDRESS DELETED]
2010年 7月 29日 (木) 15:30:54 JST


decoyさん

竹内(stakeuchi)です。
#またまた遅くなりました。。。

> という事はmayaa使用時のみ以前、存在していたクラスを参照しようとして
> 下記のようなエラーが発生していると推測したのですが如何でしょうか。

はい、その通りになります。
以前はGAEの場合とそうでない場合で
画像をオートスケールするためのtaglibを別々に用意していたのですが
これを共通化して<m:img>タグに統一したため
GAE用のtaglibが無くなりました。

が、ご指摘の例外は
クラスが無くなったにも関わらずtldファイルが残っていたため
紛らわしい状態になっていたように思います。
(あたかもカスタムタグがあるかのような状態)


対応としては少々微妙ですが
下位互換のため、一旦<gm:img>はカスタムタグとして残し
実態のクラスはmobylet-taglibsに入っている
org.mobylet.taglibs.impl.ImageTag
を呼び出すような形をしばらく残したいと思います。


本件は1.0.6リリースでの対応とさせてください。
よろしくお願い致します。


2010年7月24日12:35  <[E-MAIL ADDRESS DELETED]>:
> お世話になります。
> decoyです。
>
> mobylet1.0.5でテンプレートにmayaaを使用すると下記のようなエラーが発生します。(jspでは発生しません)
> エラーの内容を見る限り、GaeAutoScaleImageTagというクラスがないとの事ですが
> 確かに下記のjarの中に上記のようなクラスはありませんでした。
>
> 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
>
> ですが、下記のページを見ると存在した為、以前は存在していたという事でしょうか?
> http://www.seasar.org/source/browse/mobylet?view=revision&sortdir=down&revision=180
>
> という事はmayaa使用時のみ以前、存在していたクラスを参照しようとして
> 下記のようなエラーが発生していると推測したのですが如何でしょうか。
>
>
> INFO  2010-07-24 10:59:43,390 [ajp-8009-2] prepareLibraries start
> INFO  2010-07-24 10:59:43,436 [ajp-8009-2] marshall factory: /org.seasar.mayaa.provider.ProviderFactory
> ERROR 2010-07-24 10:59:44,428 [ajp-8009-2] java.lang.ClassNotFoundException: org.mobylet.gae.taglibs.GaeAutoScaleImageTag
> java.lang.RuntimeException: java.lang.ClassNotFoundException: org.mobylet.gae.taglibs.GaeAutoScaleImageTag
>        at org.seasar.mayaa.impl.util.ObjectUtil.loadClass(ObjectUtil.java:118)
>        at org.seasar.mayaa.impl.builder.library.tld.TagTagHandler$TagClassSetter.end(TagTagHandler.java:130)
>        at org.seasar.mayaa.impl.util.xml.TagHandler.endElement(TagHandler.java:91)
>        at org.seasar.mayaa.impl.util.xml.TagHandlerStack.endElement(TagHandlerStack.java:67)
>        at org.seasar.mayaa.impl.util.xml.XMLHandler.endElement(XMLHandler.java:143)
>        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>        at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown Source)
>        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
>        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
>        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
>        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>        at org.seasar.mayaa.impl.util.XMLUtil.parse(XMLUtil.java:49)
>        at org.seasar.mayaa.impl.builder.library.TLDDefinitionBuilder.build(TLDDefinitionBuilder.java:53)
>        at org.seasar.mayaa.impl.builder.library.LibraryManagerImpl.buildAll(LibraryManagerImpl.java:158)
>        at org.seasar.mayaa.impl.builder.library.LibraryManagerImpl.prepareLibraries(LibraryManagerImpl.java:143)
>        at org.seasar.mayaa.impl.MayaaServlet.init(MayaaServlet.java:54)
>        at javax.servlet.GenericServlet.init(GenericServlet.java:212)
>        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
>        at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:808)
>        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:599)
>        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
>        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
>        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
>        at org.seasar.struts.action.S2RequestProcessor.doForward(S2RequestProcessor.java:306)
>        at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
>        at org.seasar.struts.action.S2RequestProcessor.process(S2RequestProcessor.java:134)
>        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
>        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.seasar.extension.filter.RequestDumpFilter.doFilter(RequestDumpFilter.java:127)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:86)
>        at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.mobylet.core.http.MobyletFilter.processFilter(MobyletFilter.java:121)
>        at org.mobylet.core.http.MobyletFilter.doFilter(MobyletFilter.java:74)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
>        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
>        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
>        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>        at org.seasar.struts.filter.RoutingFilter.forward(RoutingFilter.java:219)
>        at org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:90)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:99)
>        at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.mobylet.core.http.MobyletFilter.processFilter(MobyletFilter.java:121)
>        at org.mobylet.core.http.MobyletFilter.doFilter(MobyletFilter.java:74)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
>        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>        at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:419)
>        at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:378)
>        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.ClassNotFoundException: org.mobylet.gae.taglibs.GaeAutoScaleImageTag
>        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
>        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
>        at org.seasar.mayaa.impl.util.ObjectUtil.loadClass(ObjectUtil.java:116)
>        ... 85 more
>
>
> 以上、ご確認の程、宜しくお願い致します。
>
> // decoy
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>



-- 
―Lei Hau'oli Co.,Ltd.―――――――――――

 竹内 真(TAKEUCHI SHIN)
 Tel: 080-3300-9888
 Mail: [E-MAIL ADDRESS DELETED]

 株式会社Lei Hau'oli
 〒135-0064 東京都江東区青海2丁目7-4 THE SOHO 934
 Tel: 03-6457-1041 Fax:03-6457-1042


Seasar-user メーリングリストの案内