Problem z klasą Controller - błąd 404

Problem z klasą Controller - błąd 404
AP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Witam. Jestem początkujący. Pracuję na aplikacją w Springu. Napisałem kontroler ale po uruchomieniu aplikacji w przeglądarce pojawia się błąd 404. Intelij zgłasza, że klasa Controller nie jest używana. Nie wiem gdzie leży problem, robię wszystko jak w tutorialu na YT ale nie działa, tak jak tam. Dziękuję za wszystkie odpowiedzi.

Kopiuj
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class WebController {
    @GetMapping("/") public String mainPage() {
            return "main";
        }
    }

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

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

spring.application.name=My-Wallet
server.port=8080

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.cache=false
spring.thymeleaf.mode=HTML
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.check-template-location=true
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

A co mowi debugger?

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
0
Artur Pietruszyński napisał(a):

Witam. Jestem początkujący. Pracuję na aplikacją w Springu. Napisałem kontroler ale po uruchomieniu aplikacji w przeglądarce pojawia się błąd 404. Intelij zgłasza, że klasa Controller nie jest używana. Nie wiem gdzie leży problem, robię wszystko jak w tutorialu na YT ale nie działa, tak jak tam. Dziękuję za wszystkie odpowiedzi.

  1. Nie masz klasy Controller..., ale masz adnotację, możesz podać szczegóły co dokładnie wypisał intellij/kompilator?
  2. Odpal aplikację, wywołaj ten url / i popatrz na logi (od samego startu) -> pewnie tam będzie wskazówka. Możesz te logi wkleić tutaj.
AP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Witam. Oto co pisze Intelij:

2025-05-06T12:31:15.258+02:00 INFO 5736 --- [My-Wallet] [ main] p.a.My_Wallet.MyWalletApplication : Starting MyWalletApplication using Java 23.0.2 with PID 5736 (C:\Users\Artur\IdeaProjects\My-Wallet\target\classes started by Artur in C:\Users\Artur\IdeaProjects\My-Wallet)
2025-05-06T12:31:15.263+02:00 INFO 5736 --- [My-Wallet] [ main] p.a.My_Wallet.MyWalletApplication : No active profile set, falling back to 1 default profile: "default"
2025-05-06T12:31:15.906+02:00 INFO 5736 --- [My-Wallet] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2025-05-06T12:31:15.928+02:00 INFO 5736 --- [My-Wallet] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 11 ms. Found 0 JPA repository interfaces.
2025-05-06T12:31:16.396+02:00 INFO 5736 --- [My-Wallet] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)
2025-05-06T12:31:16.410+02:00 INFO 5736 --- [My-Wallet] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2025-05-06T12:31:16.410+02:00 INFO 5736 --- [My-Wallet] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.40]
2025-05-06T12:31:16.468+02:00 INFO 5736 --- [My-Wallet] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2025-05-06T12:31:16.468+02:00 INFO 5736 --- [My-Wallet] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1155 ms
2025-05-06T12:31:16.606+02:00 INFO 5736 --- [My-Wallet] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2025-05-06T12:31:16.815+02:00 INFO 5736 --- [My-Wallet] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:ae040e1d-7db6-4d57-b1e3-71f7f9c52d3b user=SA
2025-05-06T12:31:16.816+02:00 INFO 5736 --- [My-Wallet] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2025-05-06T12:31:16.872+02:00 INFO 5736 --- [My-Wallet] [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2025-05-06T12:31:16.943+02:00 INFO 5736 --- [My-Wallet] [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.13.Final
2025-05-06T12:31:16.983+02:00 INFO 5736 --- [My-Wallet] [ main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled
2025-05-06T12:31:17.287+02:00 INFO 5736 --- [My-Wallet] [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
2025-05-06T12:31:17.372+02:00 INFO 5736 --- [My-Wallet] [ main] org.hibernate.orm.connections.pooling : HHH10001005: Database info:
Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)']
Database driver: undefined/unknown
Database version: 2.3.232
Autocommit mode: undefined/unknown
Isolation level: undefined/unknown
Minimum pool size: undefined/unknown
Maximum pool size: undefined/unknown
2025-05-06T12:31:17.681+02:00 INFO 5736 --- [My-Wallet] [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
2025-05-06T12:31:17.685+02:00 INFO 5736 --- [My-Wallet] [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2025-05-06T12:31:17.729+02:00 WARN 5736 --- [My-Wallet] [ 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
2025-05-06T12:31:18.139+02:00 INFO 5736 --- [My-Wallet] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/'
2025-05-06T12:31:18.148+02:00 INFO 5736 --- [My-Wallet] [ main] p.a.My_Wallet.MyWalletApplication : Started MyWalletApplication in 3.252 seconds (process running for 4.285)
2025-05-06T12:31:53.217+02:00 INFO 5736 --- [My-Wallet] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2025-05-06T12:31:53.217+02:00 INFO 5736 --- [My-Wallet] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2025-05-06T12:31:53.219+02:00 INFO 5736 --- [My-Wallet] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms

jarekr000000 napisał(a):
Artur Pietruszyński napisał(a):

Witam. Jestem początkujący. Pracuję na aplikacją w Springu. Napisałem kontroler ale po uruchomieniu aplikacji w przeglądarce pojawia się błąd 404. Intelij zgłasza, że klasa Controller nie jest używana. Nie wiem gdzie leży problem, robię wszystko jak w tutorialu na YT ale nie działa, tak jak tam. Dziękuję za wszystkie odpowiedzi.

  1. Nie masz klasy Controller..., ale masz adnotację, możesz podać szczegóły co dokładnie wypisał intellij/kompilator?
  2. Odpal aplikację, wywołaj ten url / i popatrz na logi (od samego startu) -> pewnie tam będzie wskazówka. Możesz te logi wkleić tutaj.
BB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0

a masz main.html ?

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 53
2

Albo nie masz main.html albo controller jest w innym pakiecie gdzie component scan go nie wykrywa.

hzmzp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 741
0

Zacznij od zmiany @GetMapping na @RequestMapping(method = RequestMethod.GET) - @GetMapping Jest używane do restowych kontrolerów
Sprawdź czy masz plik resourcach templates\main.html i czy jest on tam gdzie odpalasz apke (napisz jak włączasz do testowania apke)
Dodałeś do security adres by był przepuszczany (o ile masz)

AP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Tak. Jest w: resources\templates.

bbzzyyczczeek napisał(a):

a masz main.html ?

AP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
1
ThygeRRR097 napisał(a):

Albo nie masz main.html albo controller jest w innym pakiecie gdzie component scan go nie wykrywa.

Rzeczywiście. Kontroler był w innym pakiecie. Głupi błąd XD Przepraszam 🙁

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.