I'm beginner in programming so please be patient (and for my english) :)
I have a problem with linking my java project with MySQL database.My project structure looks like this:project structure
And my java class "MyUtil" looks:
package pl.projectspring.util;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.Reader;public class MyUtil { private static SqlSessionFactory sessionFactory; static { Reader reader; try { reader = Resources.getResourceAsReader("projectspring-config.xml"); sessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } public static SqlSessionFactory getSessionFactory() { return sessionFactory; }}
So in my getResourceAsReader can't read a projectspring-config.xml file. This file is located in package resources, which I created and marked directory as resources root, but always I got an error.
and when I try run an application in browser I got
HTTP Status 500 – Internal Server Error Type Exception Report Message Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class pl.projectspring.util.MyUtil Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class pl.projectspring.util.MyUtil org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause java.lang.NoClassDefFoundError: Could not initialize class pl.projectspring.util.MyUtil pl.projectspring.dao.EmployeeMapper.getEmployees(EmployeeMapper.java:15) pl.projectspring.controller.EmployeeController.index(EmployeeController.java:16)
and more logs
In Intellij I don't have any logs with error in output.
When I change line
reader = Resources.getResourceAsReader("projectspring-config.xml");
to
reader = Resources.getResourceAsReader("resources/projectspring-config.xml");
I got in browser
HTTP Status 500 – Internal Server Error Type Exception Report Message Request processing failed; nested exception is java.lang.NullPointerException Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause java.lang.NullPointerException pl.projectspring.dao.EmployeeMapper.getEmployees(EmployeeMapper.java:15) pl.projectspring.controller.EmployeeController.index(EmployeeController.java:16)
and more...
but now in Intellij output I got
java.io.IOException: Could not find resource resources/projectspring-config.xml at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:89) at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:76) at org.apache.ibatis.io.Resources.getResourceAsReader(Resources.java:134) at pl.projectspring.util.MyUtil.<clinit>(MyUtil.java:18) at pl.projectspring.dao.EmployeeMapper.getEmployees(EmployeeMapper.java:15) at pl.projectspring.controller.EmployeeController.index(EmployeeController.java:16) 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) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
I tried to move projectspring-config.xml file to different places, tried telling an slash before resources and always same problem.
I was looking for solutions on Stackoverflow, I found that prompt to add in pom.xml
`<resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources>
`
but it doesn't work.
However I do this from one of tutorial, which is deployed on github, but written in Eclipse (I use Intellij). When I download this project and try run, I have same problem.
I will be grateful for any help