Попытка развернуть приложение весенней загрузки в Payara Micro не удалась из-за класса зависимости базы данных Джексона - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь развернуть войну Spring Boot, которая развертывает OK в Payara Full в Docker (payara / server-full: 4.181)

Если я пытаюсь запустить то же приложение в Payara Micro в Docker (payara / micro: 5.193.1) У меня возникает проблема во время выполнения (см. ниже).

Похоже на версию привязки данных Джексона в нашем приложении 2.8.11.1 (которую мы не можем изменить, поскольку она связана сверсия Spring, которую мы используем) конфликтует с версией (неизвестной), поставляемой с Payara Micro.

web.xml содержит

metadata-complete = "true"

и glassfish-web.xml содержит

делегат загрузчика классов = "false"

в попытке устранить проблемы загрузки классов, связанные с конфликтующими банками.

Есть ли способ исправить это путем изоляции банок в WAR от банок, поставляемых в Payara micro?

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.client.RestTemplate]: Factory method 'restTemplate' threw exception; nested exception is java.lang.VerifyError: Bad return type
Exception Details:
  Location:
    org/springframework/http/converter/json/Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer.create()Lcom/fasterxml/jackson/databind/ObjectMapper; @10: areturn
  Reason:
    Type 'com/fasterxml/jackson/dataformat/xml/XmlMapper' (current frame, stack[0]) is not assignable to 'com/fasterxml/jackson/databind/ObjectMapper' (from method signature)
  Current Frame:
    bci: @10
    flags: { }
    locals: { 'org/springframework/http/converter/json/Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer' }
    stack: { 'com/fasterxml/jackson/dataformat/xml/XmlMapper' }
  Bytecode:
    0x0000000: bb00 0359 b800 04b7 0005 b0            

    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
    ... 220 common frames omitted
Caused by: java.lang.VerifyError: Bad return type
Exception Details:
  Location:
    org/springframework/http/converter/json/Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer.create()Lcom/fasterxml/jackson/databind/ObjectMapper; @10: areturn
  Reason:
    Type 'com/fasterxml/jackson/dataformat/xml/XmlMapper' (current frame, stack[0]) is not assignable to 'com/fasterxml/jackson/databind/ObjectMapper' (from method signature)
  Current Frame:
    bci: @10
    flags: { }
    locals: { 'org/springframework/http/converter/json/Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer' }
    stack: { 'com/fasterxml/jackson/dataformat/xml/XmlMapper' }
  Bytecode:
    0x0000000: bb00 0359 b800 04b7 0005 b0            

    at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:584)
    at org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter.<init>(MappingJackson2XmlHttpMessageConverter.java:50)
    at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init>(AllEncompassingFormHttpMessageConverter.java:73)
    at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:166)
    at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:195)
    at com.ngahr.myview.hermes.common.spring.RestTemplateConfiguration.restTemplate(RestTemplateConfiguration.java:44)
    at com.ngahr.myview.hermes.common.spring.RestTemplateConfiguration$$EnhancerBySpringCGLIB$$10e756d1.CGLIB$restTemplate$1(<generated>)
    at com.ngahr.myview.hermes.common.spring.RestTemplateConfiguration$$EnhancerBySpringCGLIB$$10e756d1$$FastClassBySpringCGLIB$$e4d63b02.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)
    at com.ngahr.myview.hermes.common.spring.RestTemplateConfiguration$$EnhancerBySpringCGLIB$$10e756d1.restTemplate(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 221 common frames omitted
...