在 WebLogic 12.2.1.2.0 上使用 Spring-boot 2.1.2.RELEASE 進行部署時出現錯誤。這是堆棧跟蹤:Caused By: java.lang.IllegalAccessError: tried to access method com.fasterxml.jackson.databind.ser.std.StdSerializer.<init>(Ljava/lang/Class;)V from class com.fasterxml.jackson.datatype.jsr310.JavaTimeModuleat com.fasterxml.jackson.datatype.jsr310.JavaTimeModule.<init>(JavaTimeModule.java:168)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:172)at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:122)at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:760)at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure(Jackson2ObjectMapperBuilder.java:639)at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:623)at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init>(MappingJackson2HttpMessageConverter.java:59)at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init>(AllEncompassingFormHttpMessageConverter.java:76)at org.springframework.web.filter.FormContentFilter.<init>(FormContentFilter.java:60)at org.springframework.boot.web.servlet.filter.OrderedFormContentFilter.<init>(OrderedFormContentFilter.java:29)at org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.formContentFilter(WebMvcAutoConfiguration.java:166)我也嘗試過使用 prefer-web-inf 類。StdSerializer 類在 jackson-datatype-jsr310:2.9.8 jar 中,理論上這不應該是一個問題,因為 welogic 沒有包含 Jackson。任何幫助,將不勝感激。
1 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
1) 在 weblogic.xml 文件中只保留這些包,其他包是不必要的:
<wls:prefer-application-packages>
<wls:package-name>org.slf4j.*</wls:package-name>
<wls:package-name>org.springframeworks.*</wls:package-name>
<wls:package-name>com.fasterxml.jackson.*</wls:package-name>
</wls:prefer-application-packages>
2)根據Spring Docs第 92.1 節將其包含在您的 pom.xml 中:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
發生此錯誤是因為 Spring Boot 正在嘗試啟動 Tomcat 容器,導致類路徑沖突。按照提供的方式設置依賴項將刪除其中的大部分,并在 weblogic.xml 中包含 com.fasterxml.jackson.* 將處理剩余的沖突。
添加回答
舉報
0/150
提交
取消