Spring MVC Project中未为数据源形成Bean [英] Bean is not formed for datasource in Spring MVC Project

查看:70
本文介绍了Spring MVC Project中未为数据源形成Bean的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到错误需要属性数据源".

I am facing error "Property datasource is required".

下面是dao-beans xml中的配置.

Below is the configuration in 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,所以无法使用

I tried with the many solutions which I found over but no luck.I can't use since my java version is 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具有以下配置:

Context.xml deployed in tomcat has the following configuration:

<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="*******"
    />

过去3天,我一直处于这种状态.无法解决此问题.任何人都可以帮助我了解问题出在哪里

I am stuck in this from past 3 days.Not able to resolve this.Can anyone pls help me to understand where it is going wrong

推荐答案

这取决于您使用的是哪个Spring版本,但您可以包括DataSoure bean ,如下所示

It depends which version of Spring you are using but You may include DataSoure bean as shown below

<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();
}

这篇关于Spring MVC Project中未为数据源形成Bean的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆