<div dir="ltr"><div>佐々木ともうします</div><div><br></div><div>以下事象について経験がある方がいましたらなにかアドバイスを頂ければと思います。</div><div>レスポンス頂けるかわかりませんが一読いただければと思います。</div><div>よろしくお願いいたします。</div><div><br>【事象】<br>セッター・インジェクションで取得したインスタンスがnullになってしまいます。<br>必ずnullになる訳ではなく、システム起動からずっと取得出来ていたものが突然nullしか取得できなくなり事があります。<br>一度nullになると、以降はアプリケーションサーバー(Tomcat)の再起動するまでnullになってしまいます。<br>何がトリガーとなってnullになってしまうのかが分からない状態です。<br><br>インジェクションが外れてしまうのはDao(S2Dao)のインスタンスです。<br>コード、diconの内容を抜粋添付します。<br><br>【ご教授頂きたい内容】<br>インジェクションでnullが発生しないようにする方法 <br>または<br>nullになった場合に再度インジェクションするための対応方法<br><br>Seasarバージョン 2.3.23<br>S2Daoバージョン 1.0.51<br>javaバージョン jdk1.7.0_79<br>Tomcatバージョン Apache Tomcat/7.0.75<br>稼働OS CentOS7<br><br>※インジェクションがNULLになってしまうsetTmUserDaoでのtmUserDaoというインスタンス<br><br>・実装の抜粋<br>javaファイル(tmUserDaoをインジェクションしている)<br> 1:    public void setTmUserDao(TmUserDao tmUserDao) {<br> 2:        this.tmUserDao = tmUserDao;<br> 3:    }<br> 4:<br> 5:    @Aspect("j2ee.requiredTx")<br> 6:    public BcmLoginServiceDto doLogin(String userId, String password,<br> 7:        String ipAddress, Long storecd) {<br> 8:<br> 9:        BcmLoginServiceDto bcmLoginServiceDto = new BcmLoginServiceDto();<br>10:        List<TmUserEntity> list = null;<br>11:        //障害のためのログ入れ start<br>12:        if (this.tmUserDao!=null) {<br>13:            System.out.println("BcmLoginService doLogin : TmUserDao is not null");<br>14:        } else {<br>15:            System.out.println("BcmLoginService doLogin : TmUserDao is null");<br>16:        }<br>17:        //障害のためのログ入れ end<br>18:        if(storecd != null && Constants.MORU_STORE_CD == storecd) {<br>19:            list = this.tmUserDao.selectByUserIdPasswordPermission(userId,password);<br>10:        } else {<br>21:            list = this.tmUserDao.selectByUserIdPassword(userId,password);<br>22:        }<br><br>※11~17行目は確認のためのログ<br>※19,21行目で、NullPointerExceptionが発生<br>※NullPointerException発生時には15行目のログが出力されている(TmUserDaoがnullになっている) <br><br>diconファイル<br>        <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"><br>                <property name="instanceDef"><br>                        @org.seasar.framework.container.deployer.InstanceDefFactory@SINGLETON<br>                </property><br>                <property name="autoNaming"><br>                        <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/><br>                </property><br>                <initMethod name="addClassPattern"><br>                        <arg>"jp.co.itfor.itforec"</arg><br>                        <arg>".*ServiceImpl,.*Dao,.*DAO,.*DxoImpl"</arg><br>                </initMethod><br>                <initMethod name="addIgnoreClassPattern"><br>                        <arg>"jp.co.itfor.itforec.service.settlement.gmo"</arg><arg>"GmoServiceImpl"</arg><br>                </initMethod><br>                <initMethod name="addIgnoreClassPattern"><br>                        <arg>"jp.co.itfor.itforec.service.settlement.wellnet"</arg><arg>"WellnetServiceImpl"</arg><br>                </initMethod><br>        </component><br><br>        <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"><br>                <property name="instanceDef"><br>                        @org.seasar.framework.container.deployer.InstanceDefFactory@PROTOTYPE<br>                </property><br>                <property name="autoNaming"><br>                        <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/><br>                </property><br>                <initMethod name="addClassPattern"><br>                        <arg>"jp.co.itfor.itforec"</arg><br>                        <arg>".*LogicImpl"</arg><br>                </initMethod><br>        </component><br><br>        <!-- アスペクトの自動登録 --><br>        <!-- Dao --><br>        <component class="org.seasar.framework.container.autoregister.AspectAutoRegister"><br>                <property name="interceptor"><br>                        dao.interceptor<br>                </property><br>                <initMethod name="addClassPattern"><br>                        <arg>"jp.co.itfor.itforec.dao"</arg><br>                        <arg>".*Dao,.*DAO"</arg><br>                </initMethod><br>        </component><br><br></div></div>