开发者社区> 问答> 正文

spring 配置jndi 报错 Cannot create JDBC driv?报错

Spring 配置jndi

我的代码如下,首先tomcat配置jndi

1、tomcat lib包下引入连接mysql数据库驱动

2、在tomcat config 下的content.xml下配置全局数据库信息

<Resource name="jdbc/mysql"
                  auth="Container"
                  type="javax.sql.DataSource"
                  driverClassName="com.mysql.jdbc.Driver"
                  maxWait="5000"
                  username="root"
                  password="1234"
                  testOnBorrow="true"
                  url="jdbc:mysql://172.20.8.90:3306/test"
        />
3、项目web.xml 配置引入数据源信息
<resource-ref>
        <res-ref-name>jdbc/mysql</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
	</resource-ref>
4、在spring applicationContent.xml中配置dataSource
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">  
		        <property name="jndiName">  
		            <value>java:comp/env/jdbc/mysql</value>  
		        </property>  
		    </bean>

5、在项目的METE-INF下面创建content.xml,信息如下

 <?xml version='1.0' encoding='utf-8'?>
    <Context>
    <Resource name="jdbc/mysql"
                  auth="Container"
                  type="javax.sql.DataSource"
                  driverClassName="com.mysql.jdbc.Driver"
                  maxWait="5000"
                  username="root"
                  password="1234"
                  testOnBorrow="true"
                  url="jdbc:mysql://172.20.8.90:3306/test"
        />
</Context>
<p>
	<br>
</p>
<p>
	<br>
</p>

项目启动 不报错,但是我请求http://localhost:8080/hello-mybatis/hello/test.do

报错: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'] with root cause

代码如下

@Controller
@RequestMapping("/hello")
public class HelloWorldController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/test.do")
    public String test() {
        User user = this.userMapper.selectByPrimaryKey(1);
        System.out.println(user.getName());
        return "test";
    }

}

我可以确认我的配置信息是正确的,url、user、password、driver都正确


展开
收起
爱吃鱼的程序员 2020-06-10 13:53:30 760 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    jndi的配置貌似不需要在web.xml中引入,从错误上看,貌似URL错了,或者引入的dirver有问题,

    完整详细的配置可参考:http://git.oschina.net/wangkang/llsfw中对于datasource的配置.

    希望能对你有帮助.

    回复 @薄暮凉年:好了就行!回复 @王康:好的,我配置好了,我只需要在content.xml中配置数据源,在web中引用,然后在applicationContent引入dataSource就可以了。回复 @薄暮凉年:tomcat解压到本地后,无需修改里面任何的配置文件,所有的修改均在eclipse中完成.回复 @王康:直接就是newserver呀完后选择tomcat的安装路径,然后修改eclipse里面tomcat为自己安装的。然后修改本地tomcat的配置信息,在修改eclipse中server项目里面的配置信息。回复 @薄暮凉年:你tomcat怎么引用到eclipse里的哦.应该引用进来后,都有一份独立的server.xml和context.xml的

    http://kingxss.iteye.com/blog/1481872


    2020-06-10 13:53:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多