我最近在用Maven做一个Javaweb项目,但是今天碰到了一个问题,我复制了报错信息百度搜索,上csdn,stackoverflow,等网站都没有找到解决的方法,我感觉是数据库的问题,但是我尝试过用JDBC来操作数据库,可以正常连接。
数据库账号密码我确认过没有错误,我是跟着视频学的,刚刚接触java不久,希望能够得到大神的帮助,感激不尽
全部报错信息如下:
java.lang.NullPointerException at java.util.Properties$LineReader.readLine(Properties.java:434) at java.util.Properties.load0(Properties.java:353) at java.util.Properties.load(Properties.java:341) at cn.itcast.travel.util.JDBCUtils.<clinit>(JDBCUtils.java:31) at cn.itcast.travel.dao.impl.UserDaoImpl.<init>(UserDaoImpl.java:10) at cn.itcast.travel.service.impl.UserServiceImpl.<init>(UserServiceImpl.java:9) at cn.itcast.travel.web.servlet.RegistUserServlet.doPost(RegistUserServlet.java:35) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 六月 21, 2019 10:40:52 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [cn.itcast.travel.web.servlet.RegistUserServlet] in context with path [/travel] threw exception java.lang.IllegalArgumentException: Property 'dataSource' is required at org.springframework.jdbc.support.JdbcAccessor.afterPropertiesSet(JdbcAccessor.java:135) at org.springframework.jdbc.core.JdbcTemplate.<init>(JdbcTemplate.java:169) at cn.itcast.travel.dao.impl.UserDaoImpl.<init>(UserDaoImpl.java:10) at cn.itcast.travel.service.impl.UserServiceImpl.<init>(UserServiceImpl.java:9) at cn.itcast.travel.web.servlet.RegistUserServlet.doPost(RegistUserServlet.java:35) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
这是读取你配置文件的时候出错了,应该是哪个属性你没有加或者值为空
谢谢你的回答,配置文件的话我是按照视频来导入项目的,视频的配置文件跟我的是一样的。
<p>你把你的配置文件内容贴出来看看嘛 </p>
你好,配置文件我刚刚贴出来了,非常感谢你的回答
<pre>dataSource</pre>
可能情况
1.配置文件没读取到
2.配置文件没有dataSource
3.配置文件里的dataSource属性是错的,造成无法打开数据连接
你好,配置文件我刚刚贴上来了,我真的是第一次接触这个配置文件,做项目之前,视频也没有教过,所以不知道怎么样配置
<p>`````</p>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.itcast</groupId> <artifactId>travel</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!--servlet--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> <scope>compile</scope> </dependency> <!--druid连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.9</version> </dependency> <!--jdbcTemplate--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.2.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.1.2.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.1.2.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.1.2.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> <scope>compile</scope> </dependency> <!--beanUtils--> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> <scope>compile</scope> </dependency> <!--jackson--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.3.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.3.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.3.3</version> </dependency> <!--javaMail--> <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.3</version> </dependency> <!--jedis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.0</version> </dependency> </dependencies> <build> <!--maven插件--> <plugins> <!--jdk编译插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>utf-8</encoding> </configuration> </plugin> <!--tomcat插件--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <!-- tomcat7的插件, 不同tomcat版本这个也不一样 --> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <!-- 通过maven tomcat7:run运行项目时,访问项目的端口号 --> <port>8080</port> <!-- 项目访问路径 本例:localhost:9090, 如果配置的aa, 则访问路径为localhost:9090/aa--> <path>/travel</path> </configuration> </plugin> </plugins> </build> </project>
`````
<p>各位,我把项目上传到了百度云,里面的代码我都已经写好了,只要<strong>启动项目,在注册页面上填写注册信息,点击提交,控制台就会报错</strong>。数据库的代码就在项目的travel.sql文件中,</p>
感兴趣有时间的可以帮忙看一下我代码究竟那里出错了,不感兴趣的可以忽略这段话,如果不是实在没有头绪,我也不会做伸手党,这已经是第二天了,今天在解决不了,就要跳过项目学框架了。谢谢各位啦
链接:https://pan.baidu.com/s/1KImj8iaxV9xy-cv5ri0LXg
提取码:fzwk
复制这段内容后打开百度网盘手机App,操作更方便哦
<p>500元帮解决问题</p>
你好幽默呀
<pre>JdbcTemplate 以及数据源是怎么配置的,xml 和 propertiles 贴出来看下</pre>
<p>你好,JdbcTemplate配置还有其他配置,我上面已经贴了出来了,xml的话好像没有这个,我用的是maven来管理项目,下面是druid.propertiles的配置信息</p>
````
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql:///travel username=root password=12345 initialSize=5 maxActive=10 maxWait=3000
`````
你的报错是使用了 spring JdbcTemplate 但是没有配置 dataSource。
1.你需要在你的 spring 配置文件里引入你的 properties 文件。 2.需要配置 dataSource。 3.需要配置 JdbcTemplate 设置 dataSource 属性。 这些你都做了吗?
对,你这些属性,是配置在哪个对象里的。发出来看下
<p>properties文件没有读到,注意位置,看看打包后的项目中是不是不存在这个文件。。估计你把配置文件放到源代码一个目录下了。。。</p>
回复 <a class="referer" target="_blank">@OSC_Uwslqd</a> : 可以看下这个https://www.cnblogs.com/MoShin/archive/2011/10/10/2204020.html
回复 <a class="referer" target="_blank">@OSC_Uwslqd</a> : spring bean 注入没有加
你好,你说的是对的,但是现在还有一个bug没有解决
Servlet.service() for servlet [cn.itcast.travel.web.servlet.RegistUserServlet] in context with path [/travel] threw exception
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。