programing

봄 부츠 3 - 자카르타와 자바.

newstyles 2023. 7. 13. 20:43

봄 부츠 3 - 자카르타와 자바.

새로운 Spring boot 3 릴리스 노트에서, 그들은 이 버전이 자카르타 EE 9(리브스로 명명됨)를 사용할 것이라고 말합니다.jakartaJEE(이름이 붙은 libs) 대신에javax).

그들은 개발자들에게 수입품을 교체하라고 조언합니다.javax와 함께jakarta 기사에서

둘 다 있는 스프링 부트 앱이 있다면,javax그리고.jakartalibs, 앱이 작동하고 자카르타 호환 서버(예: Tomcat 10)에 배포될 수 있습니까?

정말 감사해요.

답은 실제로 어떤 특정 라이브러리를 사용하고 있으며 이들 라이브러리가 서로 어떻게 상호 작용하는지에 따라 달라지지만 일반적으로 Java EE와 자카르타 EE를 혼합하려고 시도하는 것은 좋지 않은 생각입니다.

예를 들어, Spring MVC 응용 프로그램을 작성하는 경우 다음을 사용합니다.DispatcherServletSpring Framework 6에서는 자카르타 서블릿 API가 필요합니다.그것이 그것과 함께 작동하도록 하는 방법은 없을 것입니다.javax.servlet다른 API의 경우 직접 사용하고 있으며 이를 기반으로 하는 Spring 추상화를 사용하지 않는 경우 클래스 경로에 이러한 추상화를 사용하지 않아도 됩니다.저는 여전히 그것을 추천하지 않을 것입니다.

만약 도움이 된다면, 저는 그 문제를 확인할 수 있습니다.

보안 취약성을 해결하기 위해 POM을 Spring 5.3.15에서 6.0.6으로, Spring Security 5.6.1에서 6.0.2로 업데이트했습니다.

처음 발견한 문제는 HttpServletRequest가 더 이상 호환되지 않는다는 것입니다. 적어도 추상화를 확장하는 경우에는요.AuthenticationProcessingFilter 등이 있습니다.

이 스레드와 다른 스레드에 따르면 솔루션은 javax.servlet-api를 jaka.servlet-api로 바꾸고 영향을 받는 모든 가져오기를 업데이트하는 것 같습니다.

https://tomcat.apache.org/migration-10.html#Specification_APIs 에서 설명한 것처럼 웹 에 웹 앱을 넣는 대신 웹 에 웹 앱을 넣는 것을 시도할 수 있습니다.

그러면 TC10은 웹 에서 새로운 전쟁을 일으키고 웹 에서 평소처럼 그것을 풀 것입니다.순수한 TC8/9 앱을 사용하여 사용해 보았는데 작동했습니다.

언급URL : https://stackoverflow.com/questions/71179660/spring-boot-3-jakarta-and-javax