[Seasar-user:14607] [Teeda]interseptor内でenumを扱った場合にLinkageError発生

小原都世和 [E-MAIL ADDRESS DELETED]
2008年 6月 9日 (月) 15:09:18 JST


はじめまして
小原と申します


interseptor内でenumを扱った場合にLinkageError発生しました
具体的にいうと、以下のような処理を行った際エラーとなりました

[処理]
(1) Pageクラス中で例外クラスのコンストラクタにenumを指定する
(2) 当該例外をthrowする
(3) interseptor内では、そのenumを元に処理を分岐

簡単なサンプルコードを作成したので、添付しました

[わかっていること]
以下の状態にすると正しく動作することがわかっています
(1) 該当クラスをhot deploy対象のディレクトリ以外に配置する
(2) cool deployで動作させる



[環境]
S2Container 2.4.25
S2Tiger 2.4.25
Teeda 1.0.13-sp1
Teeda Tiger 1.0.13-sp1

[stackTrace]
java.lang.LinkageError: Class sample/common/MessageCode violates loader
constraints
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1819)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1327)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at
sample.interceptor.PageThrowableInterceptor.handleThrowable(PageThrowableInterceptor.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.seasar.framework.aop.interceptors.ThrowsInterceptor.invoke(ThrowsInterceptor.java:82)
at
sample.web.app.SamplePage$$EnhancedByS2AOP$$122c082$$MethodInvocation$$doSomething2.proceed(MethodInvocationClassGenerator.java)
at
org.seasar.extension.tx.DefaultTransactionCallback.execute(DefaultTransactionCallback.java:58)
at
org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.required(JTATransactionManagerAdapter.java:65)
at
org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:41)
at
sample.web.app.SamplePage$$EnhancedByS2AOP$$122c082$$MethodInvocation$$doSomething2.proceed(MethodInvocationClassGenerator.java)
at
org.seasar.framework.aop.interceptors.ThrowsInterceptor.invoke(ThrowsInterceptor.java:77)
at
sample.web.app.SamplePage$$EnhancedByS2AOP$$122c082$$MethodInvocation$$doSomething2.proceed(MethodInvocationClassGenerator.java)
at
org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:73)
at
sample.web.app.SamplePage$$EnhancedByS2AOP$$122c082$$MethodInvocation$$doSomething2.proceed(MethodInvocationClassGenerator.java)
at
sample.web.app.SamplePage$$EnhancedByS2AOP$$122c082.doSomething(SamplePage$$EnhancedByS2AOP$$122c082.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:93)
at
org.seasar.framework.beans.impl.BeanDescImpl.invoke(BeanDescImpl.java:213)
at
org.seasar.teeda.extension.html.impl.HtmlComponentInvokerImpl.invoke(HtmlComponentInvokerImpl.java:163)
at
org.seasar.teeda.extension.html.impl.HtmlActionListener.processAction(HtmlActionListener.java:71)
at javax.faces.component.UICommand.broadcast(UICommand.java:149)
at
org.seasar.teeda.extension.component.html.THtmlCommandButton.broadcast(THtmlCommandButton.java:78)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:192)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117)
at
org.seasar.teeda.core.lifecycle.impl.InvokeApplicationPhase.executePhase(InvokeApplicationPhase.java:29)
at
org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:57)
at
org.seasar.teeda.core.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:97)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:100)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
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:77)
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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
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.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)




以上よろしくお願いします
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20080609/6bf7ecbe/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sample.zip
Type: application/zip
Size: 8993 bytes
Desc: 無し
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20080609/6bf7ecbe/attachment-0001.zip>


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