!!! Od 1.6.2022 nastupuji do Komerční banky tvořit novou digitální banku. Školení se nechci úplně vzdávat, v současnosti přemýšlím nad tím, jak alespoň pár školení za rok uskutečnit. Pokud by mi někdo se školeními chtěl pomoci, tak se mi ozvěte. Na JavaDays opět budu, to si nenechám ujít :-) Teď budu mít v KB hodně práce než si všechno sedne, ale jakmile to nastane, tak hned budu přemýšlet nad tím, jak alespoň pár školení za rok uskutečnit, protože je hromada lidí, které bych opět strašně moc rád viděl a považuji je za přátele. Časem (nejspíš v příštích pár měsících) vytvořím nový blog na separátní doméně a novinky Java a SQL školení dále rozšiřovat nebudu. Pokud se něco změní, tak to dám včas vědět zde na webu a na blogu. !!!

Spring Native & @ResponseStatus

publikováno: 20.12.2021

Ve Spring Native aktuálně nefunguje tento způsob řešení výjimek (možná časem fungovat začne, Spring Native je stále beta):

@ResponseStatus(HttpStatus.NOT_FOUND)
public class NotFoundException extends RuntimeException {
}

Dostanete tuto hlášku:

2021-12-20 13:35:39 [http-nio-8080-exec-1] {requestId:} ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - 
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
[Handler processing failed; nested exception is com.oracle.svm.core.jdk.UnsupportedFeatureError:
Proxy class defined by interfaces [interface org.springframework.web.bind.annotation.ResponseStatus,
interface org.springframework.core.annotation.SynthesizedAnnotation] not found. Generating proxy
classes at runtime is not supported. Proxy classes need to be defined at image build time by
specifying the list of interfaces that they implement. To define proxy classes use
-H:DynamicProxyConfigurationFiles=<comma-separated-config-files> and
-H:DynamicProxyConfigurationResources=<comma-separated-config-resources> options.] with root cause
com.oracle.svm.core.jdk.UnsupportedFeatureError: Proxy class defined by interfaces
[interface org.springframework.web.bind.annotation.ResponseStatus,
interface org.springframework.core.annotation.SynthesizedAnnotation] not found.
Generating proxy classes at runtime is not supported. Proxy classes need to be defined at image
build time by specifying the list of interfaces that they implement. To define proxy classes use
-H:DynamicProxyConfigurationFiles=<comma-separated-config-files> and
-H:DynamicProxyConfigurationResources=<comma-separated-config-resources> options.

Toto řešení ale funguje:

@ControllerAdvice
public class AppControllerAdvice {

@ResponseStatus(HttpStatus.NOT_FOUND)
@ExceptionHandler
public String handleNotFoundException(NotFoundException e) {
return "error/404";
}

}

 

Reference

Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek

Certicon
David

Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.

Jaroslav

Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.

Retia
Jaromír


Novinky

6.6.2022: JFR (Java Flight Recorder) & Java 17

16.4.2022: Docker Desktop & High CPU usage

5.4.2022: Spring4Shell 0-day vulnerability