Локальный хост:8080, показывает ошибку 404 в приложении Spring Boot

#java #spring #spring-boot #tomcat #microservices

Вопрос:

У меня возникли некоторые вопросы в отношении моей весна загрузки микрослужбах, я был в состоянии успешно подключиться к моей конструирование в моем экземпляре SQL работает на облаке Google, но по какой-то причине, когда я пытаюсь проверить, если контроллеры работают, используя образец конечную точку, которая просто возвращает строку «работает», я получаю 404 не найдена ошибка, Я также попробовал образец пустой проект, без зависимости исключением тех, что необходимы, чтобы сделать ботинка Весны и работает, однако я по-прежнему сталкиваются с той же проблемой, то есть я получаю 404 не найдена ошибка, хотя это правильно компиляции и выполнения. Я проверил свой брандмауэр, и он не заблокировал службу.

Вот контроллер

VideoController.java

 package com.example.demo.Controllers;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class VideoController {


    @RequestMapping(path = "/test")
    public String index() {
        return "Greetings from Spring Boot!";
    }
}
 

Запуск Журналов

     2021-07-11 16:53:28.677  INFO 16456 --- [           main] com.example.demo.Run.DemoApplication     : Starting DemoApplication using Java 15.0.2 on DESKTOP-OO1339O with PID 16456 (C:UsersEngineeringIdeaProjectsgcp-demobuildclassesjavamain started by Engineering in C:UsersEngineeringIdeaProjectsgcp-demo)
2021-07-11 16:53:28.679  INFO 16456 --- [           main] com.example.demo.Run.DemoApplication     : No active profile set, falling back to default profiles: default
2021-07-11 16:53:29.149  INFO 16456 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2021-07-11 16:53:29.161  INFO 16456 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 JPA repository interfaces.
2021-07-11 16:53:29.510  INFO 16456 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-07-11 16:53:29.517  INFO 16456 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-07-11 16:53:29.517  INFO 16456 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.48]
2021-07-11 16:53:29.624  INFO 16456 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-07-11 16:53:29.625  INFO 16456 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 913 ms
2021-07-11 16:53:29.751  INFO 16456 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2021-07-11 16:53:29.788  INFO 16456 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.32.Final
2021-07-11 16:53:29.888  INFO 16456 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2021-07-11 16:53:29.971  INFO 16456 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2021-07-11 16:53:30.025  INFO 16456 --- [           main] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:30.025  INFO 16456 --- [           main] c.g.cloud.sql.core.CoreSocketFactory     : First Cloud SQL connection, generating RSA key pair.
2021-07-11 16:53:31.820  INFO 16456 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2021-07-11 16:53:31.835  INFO 16456 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL57Dialect
2021-07-11 16:53:31.924  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:32.035  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:32.040  INFO 16456 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2021-07-11 16:53:32.049  INFO 16456 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-07-11 16:53:32.099  WARN 16456 --- [           main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2021-07-11 16:53:32.147  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:32.245  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:32.265  INFO 16456 --- [           main] c.g.c.s.core.DefaultCredentialsProvider  : Default credentials provider for service account acn-demo-app@involuted-earth-319307.iam.gserviceaccount.com
2021-07-11 16:53:32.265  INFO 16456 --- [           main] c.g.c.s.core.DefaultCredentialsProvider  : Scopes in use by default credentials: [https://www.googleapis.com/auth/pubsub, https://www.googleapis.com/auth/spanner.admin, https://www.googleapis.com/auth/spanner.data, https://www.googleapis.com/auth/datastore, https://www.googleapis.com/auth/sqlservice.admin, https://www.googleapis.com/auth/devstorage.read_only, https://www.googleapis.com/auth/devstorage.read_write, https://www.googleapis.com/auth/cloudruntimeconfig, https://www.googleapis.com/auth/trace.append, https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/cloud-vision, https://www.googleapis.com/auth/bigquery, https://www.googleapis.com/auth/monitoring.write]
2021-07-11 16:53:32.277  INFO 16456 --- [           main] c.g.c.s.a.c.GcpContextAutoConfiguration  : The default project ID is XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST
2021-07-11 16:53:32.353  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:32.378  INFO 16456 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-07-11 16:53:32.389  INFO 16456 --- [           main] com.example.demo.Run.DemoApplication     : Started DemoApplication in 4.027 seconds (JVM running for 4.567)
2021-07-11 16:53:32.449  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:32.554  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:32.659  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [involuted-earth-319307:australia-southeast1:cloud-demo] via SSL socket.
2021-07-11 16:53:32.768  INFO 16456 --- [onnection adder] c.g.cloud.sql.core.CoreSocketFactory     : Connecting to Cloud SQL instance [XXXXXXXXHIDDENFROMSTACKOVERFLOWPOST] via SSL socket.
2021-07-11 16:53:38.167  INFO 16456 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-07-11 16:53:38.167  INFO 16456 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-07-11 16:53:38.168  INFO 16456 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
 

Файл Свойств моего приложения

Применение.свойства

   spring.main.allow-bean-definition-overriding=true
spring.datasource.url=SOMEVALUE HERE
spring.datasource.username=SOMEVALUE HERE
spring.datasource.password=SOMEVALUEHERE
spring.cloud.gcp.sql.database-name=SOMEVALUEHERE
spring.cloud.gcp.sql.instance-connection-name=SOMVEVALUEHERE
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
 

Моя Файловая Структура

Структура файла

Мой класс Запуска приложения

DemoApplication.Java

 package com.example.demo.Run;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
 

Запрос почтальона

Комментарии:

1. По какому URL вы пытаетесь получить доступ к своему сервису?

2. добавьте @CrossOrigin(origins = » localhost:8080″ ) на уровне метода и повторите попытку

3. ваша реализация выглядит нормально @CrossOrigin и смотрите

4. Я добавил @CrossOrigin(origins = «localhost:8080») в начало класса видеоконтроллеров, я все еще получаю http 404

5. @SelvakumarAnushan CORS не имеет никакого отношения к этой проблеме!

Ответ №1:

DemoApplication находится в com.example.demo.Run упаковке. Это означает, что его сканирование компонентов , включенное через @SpringBootApplication , будет находить компоненты в com.example.demo.Run любых подпакетах, таких как com.example.demo.Run.example . Следовательно, остальная часть вашего кода не находится в пакете, где он будет найден.

Я бы исправил это, перейдя DemoApplication в com.example.demo пакет. Это будет означать, что компоненты в любом из ваших существующих com.example.demo.* пакетов найдены.

В качестве альтернативы вы можете оставить DemoApplication его там, где он есть, и использовать scanBasePackages атрибут on @SpringBootApplication для перечисления всех ваших других com.example.demo.* пакетов. Это будет более подробным, чем перемещение DemoApplication , и потребует изменений каждый раз, когда вы вводите новый пакет.

Комментарии:

1. Извините за задержку, но я думаю, что это устраняет мою проблему, но я не уверен, как бы я ее реализовал, было бы что-то вроде этого @SpringBootApplication(scanBasePackages = {«com.example.demo»}) Это внутри моего демо-приложения. Файл Java, который находится внутри пакета, Запустите

2. Да, это должно сработать. Я бы все равно предпочел переехать DemoApplication , так как это рекомендуемый способ структурирования вашего кода.

3. Хм, я переиздал свой вопрос, я попытался перенести демонстрационное приложение в основной пакет, поэтому внутри (com.example.demo), но я получаю еще одну ошибку

4. Пожалуйста, не редактируйте свой вопрос таким образом, чтобы полностью изменить его, так как из-за этого существующие комментарии и ответы кажутся бесполезными. Вместо этого задайте новый вопрос для новой проблемы.

5. Привет, я больше не могу создавать новые вопросы из-за ограничения моей учетной записи (1 вопрос в день), поэтому я не создавал новый.

Ответ №2:

Как вы сказали, ваша первая проблема была связана с уровнем пакета вашего основного класса и класса контроллера. Но вторая проблема, похоже, не зависит от рефакторинга основного класса. Это связано с конфликтом версии вашего JDK или другой библиотеки