Mi lehet a probléma ebben az esetben Spring bootnál?
3.0.3-as veziójú Spring boot alkalmazást csinálok Javával.
Házi feladatnak, így ki van adva, hogy szerver oldalon kell előállítani a frontendet, így nem restcontrollert, hanem a sima @Controller annotációt használom és így nézki konkrétan a contollerem:
@Slf4j
@RequiredArgsConstructor
@Controller
public class BaseController {
private final ConfigReader configurations;
@GetMapping("/")
public String indexPage(){
... // itt is van kód, de nem érdekes a kerdes szempontjabol
return "landing";
}
@GetMapping("/v1/{id}")
public String getVideoFeed(Model model, @PathVariable("id") String droneId) {
... // itt is van kód, de nem érdekes a kerdes szempontjabol
return "video";
}
}
Eredetileg a "landing" html-t index.html-nek hívtam és arra letem figyelmes, hogy attól függetlenül milyen URL-t hívok meg mindig az index.html-t dobta fel a localhost:8080 kezdetű URLkkel (Biztos jó a port, mert indításkor ki is írja, hogy a 8080 porton elérhető az alkalmazás).
Közben tettem egy debug pöttyöt mindkét @GetMapping-es függvénybe és elindítottam IntelliJ-ben degub módban is az alkalmazást és azt vettem észre, hogy nem hívódik meg egyszer sem semelyik.
Majd átneveztem az index.html-t landing.html-re, így már ha megnyitom a localhost:8080-t akkor csak egy 404-es errot dob. Tehát eddig az volt a probléma, hogy alapból az index.html-t bedobta, mert amúgy nem talált más endpointot.
Ez azért furcsa, mert @Controller annotáció tartalmazza a @Component annotációt is, így a component scannek fel kéne ismerni. Plusz tudom autowirelni ezt a controllert, így mindenképpen fel is ismeri.
@SpringBootApplication
public class RandomApp{
public static void main(String[] args) {
SpringApplication.run(RandomApp.class, args);
}
}
Meg @SpringBootApplication annotáció a main függvényt tartalmazó osztályon elvileg elindítja a component scan-t.
Neten több helyen néztem és chatGPT-t is kérdeztem, de nem találtam megoldást. Bárki tudja mi lehet?
Ilyen a pom fájlom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=" [link] xmlns:xsi=" [link]
xsi:schemaLocation=" [link] [link]
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>...</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>....</name>
<description>...</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>webjars-locator-core</artifactId>
<version>0.52</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
com.example.valami
-configuration
--Configuration.java
-controller
--BaseController.java
-RandomApp.java
Továbbra sem megy.
Pirosak a stringek a "scanBasePackages" beállításban és azt írja, hogy nem ismeri fel a package-eket.
100%, hogy jól másoltam be a nevét. A refaktor->rename után kitudtam jelölni és utána mentés nélkül ki léptem, tehát konkrétan be másoltam a nevüket.
Engedte, hogy így is buildeljek, meg futott, de továbbra is rosszul működik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!