我遇到错误“需要属性数据源”。
以下是dao-beans xml中的配置。
<bean id="Template" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/comp/env/jdbc/TEMPLATES" />
</bean>
<bean id="languageDao" class="com.test.daoImpl.LanguageDAOImpl"
init-method="init">
<property name="cspLanguageGet" value="csp_LANGUAGE_Get" />
</bean>
类具有以下配置:
private DataSource Template;
private SimpleJdbcCall languageGet;
private String cspLanguageGet;
@Autowired
@Qualifier("Template")
public void setTemplate(DataSource Template) {
this.Template = Template;
}
@Required
public void setCspLanguageGet(String cspLanguageGet) {
this.cspLanguageGet = cspLanguageGet;
}
public void init() {
this.languageGet = new SimpleJdbcCall(Template).withProcedureName(cspLanguageGet);
this.languageGet.compile();
}
我尝试了很多找到的解决方案,但是没有运气。因为我的Java版本是1.8,所以无法使用
下面是错误堆栈跟踪。
java.lang.IllegalArgumentException: Property 'dataSource' is required
at org.springframework.jdbc.support.JdbcAccessor.afterPropertiesSet(JdbcAccessor.java:134)
at org.springframework.jdbc.core.JdbcTemplate.<init>(JdbcTemplate.java:165)
at org.springframework.jdbc.core.simple.AbstractJdbcCall.<init>(AbstractJdbcCall.java:87)
at org.springframework.jdbc.core.simple.SimpleJdbcCall.<init>(SimpleJdbcCall.java:69)
at com.aexp.travel.docdelivery.tcapp.daoImpl.LanguageDAOImpl.init(LanguageDAOImpl.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
部署在tomcat中的Context.xml具有以下配置:
<Resource
name="jdbc/TEMPLATES"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
url="jdbc:jtds:sqlserver://gtwtdwdbsqlv001.gbt.gbtad.com:1433;databaseName=Template"
username="Test"
password="*******"
/>
我在过去三天内一直处于这种状态。无法解决此问题。任何人都可以帮助我了解问题出在哪里
这取决于您使用的是哪个版本的Spring,但是您可能包括DataSoure Bean,如下所示
<bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:file:C:/temp/test" />
<property name="username" value="sa" />
<property name="password" value="" />
<property name="initialSize" value="2" />
<property name="maxActive" value="5" />
</bean>
OR
@Bean
public DataSource getDataSource() {
DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.driverClassName("org.h2.Driver");
dataSourceBuilder.url("jdbc:h2:file:C:/temp/test");
dataSourceBuilder.username("sa");
dataSourceBuilder.password("");
return dataSourceBuilder.build();
}