データソース オブジェクトをサーブレットに挿入しようとしています。set メソッドで出力するロガーがあります。事前初期化で問題なく動作します。しかし、サーブレットをリクエストすると、nullPointerException が返されます。
なぜこれが起こるのかについて何か提案はありますか? (これは私が拡張しているサーブレットに関連しているとは思わない)
これがapplicationContext.xmlです
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="dataServlet" class="com.mycom.util.DataServlet">
<property name="dataSource" ref="dataSource" />
<property name="test" value="dataSource" />
</bean>
サーブレット
public class DataServlet extends DataSourceServlet {
...
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
logger.log(Level.INFO, "Inj: datasrc");
}
@Autowired
public void setTest(String test) {
this.test = test;
logger.log(Level.INFO, "Set Test {0}", this.test);
}
}
ブレークポイント @ setTest を設定すると、@ pre-init が壊れます。しかし、実際のオブジェクトがリクエストされたとき。@ setTest を壊すことはありません。
なぜそうなのですか?(シングルトン/スコープの問題関連?)
お知らせ下さい!前もって感謝します!