Spring MVC Project中未为数据源形成Bean

问题描述 投票:0回答:1

我遇到错误“需要属性数据源”。

以下是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 spring-mvc jdbc spring-jdbc
1个回答
0
投票

这取决于您使用的是哪个版本的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();
}
© www.soinside.com 2019 - 2024. All rights reserved.