Spring で TopLink を使用しようとしていますが、問題が発生しています。Webサービス(CXF)で使用しています。getTopLinkTemplate() を使用すると、resul が null になります。ここに私の applicationContext.xml があります:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@*************" />
<property name="username" value="*****" />
<property name="password" value="*****" />
</bean>
<bean id="mySessionFactory"
class="org.springframework.orm.toplink.LocalSessionFactoryBean">
<property name="configLocation" value="toplink-sessions.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="myProductDao" class="ToplinkExecPS.ExecPS">
<property name="sessionFactory">
<ref local="mySessionFactory" />
</property>
</bean>
私のコードは次のとおりです。
public class ExecPS extends TopLinkDaoSupport{
public Vector Exec(String test)
{
TopLinkTemplate t;
t = getTopLinkTemplate();
if (t == null)
System.out.println("template is null");
}
}
したがって、このコードを実行すると、コンソールに「テンプレートが null です」と表示され、変数「t」を使用しようとすると nullPointerException が発生します。
詳細については、TopLink を使用したデータベースへの接続は成功しています。
[TopLink - 情報]: 2012.05.23 03:45:22.113--ServerSession(4812898)--Thread(Thread[main,5,main])--Session - connexion réussie
私は非常に多くのことをテストしましたが、まだ立ち往生しています。あなたが私を助けてくれることを願っています。
[編集]
OK、私は本当に初心者です。メソッドを呼び出す前に Bean を取得するのを忘れているだけです...誰かがこのスレッドに参加した場合、コードがあります:
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext(new String[]{"ToplinkContext.xml"} );
ExecPS exec = (ExecPS)context.getBean("myProductDao");