Within my .jsp file i'm calling an object that is suppose to update my database using JdbcTemplate.update. I'm using Spring MVC framework, tomcat and mySql. Thank you for any help.
Code from my .jsp file:
<% FileDataDAO fileDataDAO = new FileDataDAO();
fileDataDAO.test();
%>
Code within my .java file:
@Component("fileDataDao")
public class FileDataDAO {
private JdbcTemplate jdbc;
private DataSource dataSource;
public FileDataDAO() {}
@Autowired
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
jdbc = new JdbcTemplate(dataSource);
}
public void test(){
String sql = "INSERT INTO myguests(id) VALUES(?)";
jdbc.update(sql,5);
}
}
daoContext.xml file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee.xsd">
<context:component-scan base-package="com.springapp.mvc.dao">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<jee:jndi-lookup jndi-name="jdbc/TestDB" id="dataSource"
expected-type="javax.sql.DataSource"/>
</beans>
Specific error:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/pages/home.jsp at line 54
51:
52: <% FileDataDAO fileDataDAO = new FileDataDAO();
53:
54: fileDataDAO.test();
55:
56: %>
57:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:172)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
You made a FileDataDAO fileDataDAO = new FileDataDAO() but you use Autowired. You need to get your instance from the contexte (spring, CDI...)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.