Почему сервер не отвечает на запрос GET - PullRequest
0 голосов
/ 06 ноября 2019

Я занимаюсь разработкой веб-приложения на Java с использованием некоторых библиотек Spring. Когда я отправляю запрос Get в "Studentsystem2 / Students", сервер Tomcat не получает его и не отвечает. Я получаю ошибку 404 НЕ НАЙДЕНА. В принципе ничего не происходит. Я не могу найти, где ошибка. Я пропустил конфигурационный файл или что-то?

Я создал приложение Jax Rs, настроив его на использование JPA Hibernate. Я не определил определенный файл или класс для корневого контекста.

StudentResource.java

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.ikubinfo.model.StudentModel;
import com.ikubinfo.service.StudentService;

@RestController
@RequestMapping(value="/students", consumes="application/json", produces="application/json")
public class StudentResource {

    @Autowired
    private StudentService studentService;
    public StudentResource () {

    }

    @GetMapping("")
    public ResponseEntity<List<StudentModel>> getAll() {
        return new ResponseEntity<List<StudentModel>>(studentService.getAll(), HttpStatus.OK);
    }
}

pom.xml

<dependencies>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.1</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
            <version>2.28</version>
        </dependency>


        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.28</version>
        </dependency>


        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>2.28</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-processing</artifactId>
            <version>2.28</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-multipart</artifactId>
            <version>2.28</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.modelmapper</groupId>
            <artifactId>modelmapper</artifactId>
            <version>2.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.2.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.8</version>
        </dependency>
    </dependencies>

Вход на сервер TOMCAT

Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name:   Apache Tomcat/9.0.20
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          May 3 2019 22:26:00 UTC
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 9.0.20.0
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 10
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.0
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre1.8.0_151
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_151-b12
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         C:\Users\core i5\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\Tomcat 9.0
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\core i5\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 9.0
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\core i5\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 9.0\endorsed
Nov 06, 2019 5:25:28 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Nov 06, 2019 5:25:28 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jre1.8.0_151\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_151/bin/server;C:/Program Files/Java/jre1.8.0_151/bin;C:/Program Files/Java/jre1.8.0_151/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\dev\apache-maven-3.5.4\bin;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\nodejs\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\PuTTY\;C:\LINGO64_18\;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk1.8.0_151\bin;C:\Users\core i5\AppData\Local\Microsoft\WindowsApps;C:\Users\core i5\AppData\Roaming\npm;C:\Users\core i5\AppData\Local\Programs\Microsoft VS Code\bin;;C:\Users\core i5\Desktop\eclipse;;.]
Nov 06, 2019 5:25:28 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Nov 06, 2019 5:25:29 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Nov 06, 2019 5:25:29 PM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [2,070] milliseconds
Nov 06, 2019 5:25:29 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Nov 06, 2019 5:25:29 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.20]
Nov 06, 2019 5:25:46 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Nov 06, 2019 5:26:09 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Nov 06, 2019 5:26:09 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Nov 06, 2019 5:26:09 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Nov 06, 2019 5:26:09 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [39,962] milliseconds

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Если вы получаете HTPP-статус 404 с сервера, это означает, что запрошенный URI неверен, я имею в виду, что 'studentsystem2/students' не был найден

для принудительного выполнения запроса:

Не могли бы вы обновить файл application.properties и добавить следующий код:

server.servlet.context-path=/studentsystem2
management.server.servlet.context-path = /studentsystem2

И в вашем REST-контроллере сделайте что-то вроде:

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.ikubinfo.model.StudentModel;
import com.ikubinfo.service.StudentService;

@RestController
@RequestMapping(value="/", consumes="application/json", produces="application/json")
public class StudentResource {

    @Autowired
    private StudentService studentService;
    public StudentResource () {

    }

    @GetMapping("students")
    public ResponseEntity<List<StudentModel>> getAll() {
        return new ResponseEntity<List<StudentModel>>(studentService.getAll(), HttpStatus.OK);
    }
}
0 голосов
/ 07 ноября 2019

То, что вы пытаетесь сделать, это отображение запроса, RequestMapping. Если вы хотите сделать GetMapping, вы должны выполнить GET-запрос к службе.

 @RequestMapping("")
public ResponseEntity<List<StudentModel>> getAll() {
    return new ResponseEntity<List<StudentModel>>(studentService.getAll(), HttpStatus.OK);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...