getSqlMapClientTemplate(), приводящий к объекту без SqlMapClient
Каковы требования для обеспечения того, чтобы getSqlMapClientTemplate() приводил к рабочему объекту?
Я строю maven проект на затмении и пишу тесты JUnit. После запуска теста я сталкиваюсь с ошибкой "SqlMapClient не указан" в выделенной строке:
@Override
public SignIn getpassforloginAttempt(String emailid, String token,
int flag, String loginSrc, String ext_userId) {
// TODO Auto-generated method stub
SignIn signin = new SignIn();
try {
//Make a hashmap to store arguments
HashMap params = new HashMap();
params.put("EmailId", emailid);
params.put("token", token);
params.put("flag", flag);
params.put("login_src", loginSrc);
params.put("user_id_external", ext_userId);
//SqlMapClientTemplate object used for data access via iBATIS SqlMapClient API
//executes a mapped SQL insert statement
template.insert("getpassforSignIn", params);
Который использует этот объект:
public class SignInServiceImpl extends SqlMapClientDaoSupport implements
SignInService {
SqlMapClientTemplate template = getSqlMapClientTemplate();
Spring должен обрабатывать все остальное с учетом этого компонента:
<beans:bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<beans:property name="dataSource">
<beans:ref local="dataSource" />
</beans:property>
<beans:property name="configLocation" value="classpath:sqlMapConfig.xml" />
</beans:bean>
<beans:bean id="userTestDao" class="com.pg.lms.dao.UserTestDao">
<beans:property name="sqlMapClient" ref="sqlMapClient"></beans:property>
</beans:bean>
Который вызывает этот путь к файлу ресурса:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "- // iBATIS.com//DTD SQL Map Config 2.0 // EN" " http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- USER_TABLE MAPPING WITH UserTable entity -->
<sqlMap resource="login/SignUp.xml" />
<sqlMap resource="login/SignIn.xml" />
<sqlMap resource="course/AddCE.xml" />
<sqlMap resource="course/MarketplaceCE.xml" />
<sqlMap resource="course/modifyCe.xml" />
<sqlMap resource="course/ViewCE.xml" />
<sqlMap resource="accountprofile/Profile.xml" />
<sqlMap resource="accountprofile/deleteaccount.xml" />
<sqlMap resource="subscription/subscription.xml" />
<sqlMap resource="pushnotifications/pushnotification.xml" />
<sqlMap resource="promoevent/share.xml" />
<sqlMap resource="emailtemplates/EmailTemplates.xml" />
</sqlMapConfig>
Приводим к этому параметру карту и процедуру (фактическая процедура не показана):
<parameterMap class="java.util.Map" id="SignIn_attempt">
<parameter property="EmailId" mode="IN" />
<parameter property="pass" mode="OUT" />
<parameter property="confirmed" mode="OUT" />
<parameter property="flag" mode="IN" />
<parameter property="token" mode="IN" />
<parameter property="id" mode="OUT" />
<parameter property="fname" mode="OUT" />
<parameter property="lname" mode="OUT" />
<parameter property="type" mode="OUT" />
<parameter property="status" mode="OUT" />
<parameter property="year" mode="OUT" />
<parameter property="is_active" mode="OUT" />
<parameter property="token2" mode="OUT" />
<parameter property="login_src" mode="IN" />
<parameter property="user_id_external" mode="IN" />
<parameter property="useridExternal" mode="OUT" />
<parameter property="loginSrc" mode="OUT" />
</parameterMap>
<procedure id="getpassforSignIn" parameterMap="SignIn_attempt">
call
login_SignIn_attempt(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
</procedure>
Что не так? И как можно устранить проблему, как это?