Невозможно создать экземпляр значения String при запуске Tomcat и NoSuchFieldError во время выполнения - PullRequest
0 голосов
/ 01 апреля 2019

У меня эта проблема уже 3 дня, и она сводит меня с ума.Мой проект использует Spring MVC и Apache Tomcat.При запуске Tomcat-8.0.24 я получаю сообщение об ошибке:

Невозможно создать экземпляр ie.revenue.schemas.common.revenue_types_v1.RegistrationType из строкового значения 'DPD': значение не одно из объявленныхИмена экземпляров Enum

Однако развертываемая мной программа работает до последней страницы, где я делаю допущение к домену, который вызывает описанный выше тип регистрации.Именно здесь я получаю ошибку java.lang.NoSuchField: DPD.

Я декомпилирую поврежденную банку, и поле DPD присутствует.Указанный jar находится за рамками нашего проекта и импортируется, мы не контролируем редактирование этого файла jar.

Самое смешное, что это общий проект, и у моего коллеги нет этой проблемы локально, в то время какпроект работает нормально в нашей среде интеграции.Я не сделал никаких локальных изменений, поэтому этот проект должен работать без сбоев.

За последние несколько дней я безуспешно пытался найти все, что могу найти, связанное с этой проблемой, включая:

  • Загрузил последнюю версию Apache Tomcat
  • Redownloaded Eclipse
  • Проверен на наличие дубликатов jar-файлов как в папке classpath, так и в папке tomcat webapps
  • Удален проект и снова клонирован из git
  • Очистил и обновил все файлы классов
  • Удаленный проект из папки tomcat webapps перед запуском
Exception at Tomcat startup

Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not co
nstruct instance of ie.revenue.schemas.common.revenue_types_v1.RegistrationType
from String value 'DPD': value not one of declared Enum instance names: [ACT, AT
T, BET, CAND_E, CAT, CGT, CT, CUST, DIRT, DWT, ELEV, EORI, EUST, EVAT, EXCISE, I
EGEVR, IL, INTR, IT, IUT, LAET, NEW_VAT, PAYE, PREM, PSWT, RCT, RPT, RTSO, SPIA,
 SSIA, STMP, TAIN, TAXC, TRT, VAT, VIES, VRT]
 at [Source: java.io.StringReader@2f6c52f4; line: 1, column: 2681] (through refe
rence chain: ie.revenue.common.revqueue.model.RevQueueWrapper["theObject"]->ie.r
evenue.schemas.crs.services.registration.register.register_request.v1.RegisterRe
quest["registrationTypes"])
        at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(Invali
dFormatException.java:55)
        at com.fasterxml.jackson.databind.DeserializationContext.weirdStringExce
ption(DeserializationContext.java:742)
        at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize
(EnumDeserializer.java:91)
        at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize
(EnumDeserializer.java:20)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deser
ialize(CollectionDeserializer.java:227)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deser
ialize(CollectionDeserializer.java:204)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deser
ialize(CollectionDeserializer.java:23)
        at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize
(SettableBeanProperty.java:525)
        at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAn
dSet(FieldProperty.java:106)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserial
ize(BeanDeserializer.java:242)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOth
er(BeanDeserializer.java:155)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(Bea
nDeserializer.java:126)
        at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializ
er._deserializeTypedForId(AsPropertyTypeDeserializer.java:118)
        at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializ
er.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:87)

-----------------------------------------------------------------------------

Exception at runtime

Caused by: java.lang.NoSuchFieldError: DPD
    at ie.revenue.drivers.business.services.endpoint.impl.DriversEndPointServiceImpl.processAutoRegistration(DriversEndPointServiceImpl.java:997)
    at ie.revenue.drivers.business.services.endpoint.impl.DriversEndPointServiceImpl.autoRegisterForDPD(DriversEndPointServiceImpl.java:982)
    at ie.revenue.drivers.business.services.endpoint.impl.DriversEndPointServiceImpl.updateBankDetails(DriversEndPointServiceImpl.java:1091)
    at ie.revenue.drivers.business.services.endpoint.impl.DriversEndPointServiceImpl.submitRegistration(DriversEndPointServiceImpl.java:171)
    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:497)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
    at ie.revenue.common.revstore.transactional.RevTransactionalAspect.revTransactionalAdvice(RevTransactionalAspect.java:57)
    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:497)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy93.submitRegistration(Unknown Source)
    at ie.revenue.drivers.business.services.impl.RegistrationDriversServiceImpl.submitRegistration(RegistrationDriversServiceImpl.java:547)
    at ie.revenue.drivers.business.services.impl.RegistrationDriversServiceImpl.submitFormDrivers(RegistrationDriversServiceImpl.java:89)
    at ie.revenue.drivers.web.controller.RegistrationDriversController.submitDeclaration(RegistrationDriversController.java:43)
    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:497)
    at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:69)
    at org.springframework.expression.spel.ast.MethodReference$MethodValueRef.getValue(MethodReference.java:267)
    ... 79 more

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...