связывание проекта java с базой данных MySQL - PullRequest
0 голосов
/ 14 апреля 2020

Я новичок в программировании, поэтому, пожалуйста, наберитесь терпения (и для моего английского sh) :)

У меня проблема с привязкой моего java проекта к базе данных MySQL. Моя структура проекта выглядит следующим образом: структура проекта

А мой java класс "MyUtil" выглядит так:

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

Итак, в моем getResourceAsReader не могу прочитать файл projectspring-config. xml. Этот файл находится в пакете resources , который я создал и пометил каталог как ресурсы root, но всегда получаю сообщение об ошибке.

и при попытке запустить приложение в браузере я получаю


        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)

и более журналов

В Intellij у меня нет журналов с ошибкой в ​​выводе.

Когда я меняю строку


    reader = Resources.getResourceAsReader("projectspring-config.xml");

до


    reader = Resources.getResourceAsReader("resources/projectspring-config.xml");

Я получил в браузере



     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)

и более ...

но теперь в выводе Intellij я получил


    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)

Я пытался переместить файл projectspring-config. xml в разные места, пытался сообщить sla sh до resources и всегда ту же проблему.

Я искал решения для Stackoverflow Я нашел это приглашение добавить в pom. xml

`<resources>
  <resource>
    <directory>src/main/java</directory>
    <includes>
      <include>**/*.xml</include>
      <include>**/*.properties</include>
    </includes>
  </resource>
</resources>

`

, но оно не работает.

Однако я делаю это из одного из учебников , который развернут на github, но написан на Eclipse (я использую Intellij). Когда я загружаю этот проект и пытаюсь запустить его, у меня возникает та же проблема.

Я буду благодарен за любую помощь

...