[Seasar-user:12734] Teedaのインタセプタが効かない場合がある

gaku furukawa [E-MAIL ADDRESS DELETED]
2008年 2月 4日 (月) 13:17:24 JST


お世話になっております、古川です。

現在、S2 + Teeda でプログラムを組んでおり、同じインタセプタを連続して発生さ
せる
テストを行っていたのですが、しばらくするとインタセプタが効かなくなってしまう
ことがあります。

[確認手順]

お気に入りから、指定画面へ遷移
 ↓
ログインエラー(ログインされていないため)
 ↓
エラー画面へ遷移
 ↓
お気に入りから、指定画面へ遷移
・・・・
・・・・
を4,5回繰り返すと、「すでにリダイレクトされています」といったエラーが発生
します。
また、ログインエラーのエクスケプションがキャッチできなくなります。


以下のコードで、ログイン処理をかませており、ログインされていなければ、
ログイン処理の中で、ログインエクスケプションをスローするようにしています。

<components>
  <include path="default-customizer.dicon"/>
  <component name="pageCustomizer"
class="org.seasar.framework.container.customizer.CustomizerChain">
   ....省略
   ....
    <initMethod name="addCustomizer">
      <arg>
        <component
class="org.seasar.framework.container.customizer.AspectCustomizer">
          <initMethod name="addInterceptorName">
            <arg>"app_aop.loginAuthInterceptor"</arg>
          </initMethod>
	      <property name="pointcut">".*Validator, prerender"</property>
          <initMethod name="addIgnoreClassPattern">
            <arg> ... 省略 ... </arg>
          </initMethod>
        </component>
      </arg>
    </initMethod>
   ....省略
   ....
</components>

以下が、ログインエクスケプションをキャッチして、エラー画面へ遷移するための記
述です。
<components namespace="teedaErrorPage" >
		....省略
		....
	<component
class="org.seasar.teeda.extension.util.TeedaExtensionErrorPageManagerImpl">
		<initMethod name="addErrorPage">

<arg>@[E-MAIL ADDRESS DELETED]</arg>
			<arg>"/view/error/errorAuth.html"</arg>
		</initMethod>
		....省略
		....
	</component>
</components>

ログインチェック処理以外でも、似たようなロジックを組んでいるのですが、
その場合は、「リダイレクトエラー」は発生しませんが、エラー画面へ遷移できなく
なる
という現象が発生しました。

どちらも、IE または Sleipnir で発生して、Firefox では発生しませんでした。

[環境]
seasar ver 2.4.17
teeda ver 1.0.7

何か原因と思われるものがありましたら、教えてください。

-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of kubo
Sent: Sunday, February 03, 2008 11:10 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:12728] Re:dbfluteでのDBアクセスについて

久保です。

MainPage.javaの49行目はどこでしょうか?
そこでNullPointerが発生しているようです。

もし、「bhv.selectList(cb);」の行なのであれば、
BehaviorがPageクラスにインジェクションされていないのだと思われます。

試しに「public ProfilesBhv bhv;」を「public ProfilesBhv profilesBhv;」
にして実行して頂けますでしょうか?
publicフィールドの場合はフィールド名が
そのままコンポーネント名として扱われるような気がしたので...

2008/2/3  <[E-MAIL ADDRESS DELETED]>:
>
>  お世話になります。田村と申します。
>
> DBfliuteの設定の件でお伺いしたいのですが、
> jdbc.bat,generate.batを実行して自動生成されたクラスを利用して
> DBfluteでデータアクセスを実行してもNullpointerが出力されます。
> 色々試してみましたがどうしても実行できません。
> お力添えをお願いいたします。
>
>
>
> ★環境
> teeda + s2dao
> S2dao 1.0.47
> dbflute 0.62
> DB;postgres8.2
> ApplicationServer:Tomcat5.5
>
> ★appdicon
>
>     <!--<include path="dao.dicon"/>-->
>     <include path="dbflute.dicon"/>
>
>
> ★<component name="xaDataSource"
>         class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
>         <property name="driverClassName">
>             "org.postgresql.Driver"
>         </property>
>         <property name="URL">
>           <!-- "jdbc:postgresql://localhost/teeda-sns"-->
>           "jdbc:postgresql://localhost/postgres"
>         </property>
>         <property name="user">"postgres"</property>
>         <property name="password">"agnie"</property>
>     </component>
>
>
>
> ★Bhvの実行部分(Pageクラス(MainPage.java))
>
>          public ProfilesBhv bhv;
>
>         中略…
>
>
>         final ProfilesCB cb = new ProfilesCB();
>
>         //全件検索
>         final ListResultBean<Profiles> a = bhv.selectList(cb);
>
> ★エラーメッセージ
>
> java.lang.NullPointerException
>     at tknnnnnn.web.main.MainPage.doProfile(MainPage.java:49)
>     at
>
tknnnnnn.web.main.MainPage$$EnhancedByS2AOP$$1d9ddba.$$doProfile$$invokeSupe
rMethod$$(MainPage$$EnhancedByS2AOP$$1d9ddba.java)
>     at
>
tknnnnnn.web.main.MainPage$$EnhancedByS2AOP$$1d9ddba$$MethodInvocation$$doPr
ofile2.proceed(MethodInvocationClassGenerator.java)
>     at
>
org.seasar.extension.tx.DefaultTransactionCallback.execute(DefaultTransactio
nCallback.java:58)
>     at
>
org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.required(JTATra
nsactionManagerAdapter.java:65)
>     at
>
org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:
41)
>     at
>
tknnnnnn.web.main.MainPage$$EnhancedByS2AOP$$1d9ddba$$MethodInvocation$$doPr
ofile2.proceed(MethodInvocationClassGenerator.java)
>     at
>
org.seasar.framework.aop.interceptors.ThrowsInterceptor.invoke(ThrowsInterce
ptor.java:77)
>     at
>
tknnnnnn.web.main.MainPage$$EnhancedByS2AOP$$1d9ddba$$MethodInvocation$$doPr
ofile2.proceed(MethodInvocationClassGenerator.java)
>     at
>
org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceIntercept
or.java:73)
>     at
>
tknnnnnn.web.main.MainPage$$EnhancedByS2AOP$$1d9ddba$$MethodInvocation$$doPr
ofile2.proceed(MethodInvocationClassGenerator.java)
>     at
>
tknnnnnn.web.main.MainPage$$EnhancedByS2AOP$$1d9ddba.doProfile(MainPage$$Enh
ancedByS2AOP$$1d9ddba.java)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     at java.lang.reflect.Method.invoke(Unknown Source)
>     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(HtmlCom
ponentInvokerImpl.java:159)
>     at
>
org.seasar.teeda.extension.html.impl.HtmlActionListener.processAction(HtmlAc
tionListener.java:62)
>     at javax.faces.component.UICommand.broadcast(UICommand.java:149)
>     at
>
org.seasar.teeda.extension.component.html.THtmlCommandButton.broadcast(THtml
CommandButton.java:61)
>     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(Inv
okeApplicationPhase.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:94)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:269)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:188)
>     at
>
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployF
ilter.java:63)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:215)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:188)
>     at
>
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2Container
Filter.java:77)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:215)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:188)
>     at
>
org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:215)
>     at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:188)
>     at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.
java:210)
>     at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.
java:174)
>     at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127
)
>     at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117
)
>     at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:108)
>     at
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>     at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
>     at
>
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processC
onnection(Http11BaseProtocol.java:665)
>     at
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav
a:528)
>     at
>
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo
rkerThread.java:81)
>     at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:685)
>     at java.lang.Thread.run(Unknown Source)
>
>
>
>
> よろしくお願いいたします。
> ________________________________
> 「初音ミク」の妹分「鏡音リン」をLive Search で画像検索!
> http://search.live.com/images/results.aspx?q=%E9%8F%A1%E9%9F%B3%E3%83%
> AA%E3%83%B3&FORM=MGDEAA
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-user


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