Как найти местоположение семантически искаженного параметризованного типа в коде. JBoss Weld выдает java.lang.reflect.MalformedParameterizedTypeException

По-видимому, я где-то поместил в свой код неправильно сформированный параметризованный тип, но его местоположение неизвестно, так как моя среда IDE не сгенерировала предупреждение, а трассировка стека не показывает место, где произошла ошибка. Любые предложения о том, как действовать, будут очень признательны. Я в тупике.

11:04:14,476 WARN  [org.jboss.weld.Event] (MSC service thread 1-3) WELD-000411: Observer method [BackedAnnotatedMethod] public org.omnifaces.VetoAnnotatedTypeExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.  
11:04:14,479 DEBUG [org.jboss.weld.deployer] (MSC service thread 1-3) Discovered SYNTHETIC BeanDeploymentArchive (org.jboss.resteasy.resteasy-cdi:main.additionalClasses)  
11:04:14,481 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [javax.enterprise.inject.spi.BeanManager] with qualifiers [@Default]  
11:04:14,481 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [org.jboss.weld.manager.BeanManagerImpl] with qualifiers [@Default]  
11:04:14,493 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Extension [class org.jboss.resteasy.cdi.ResteasyCdiExtension] with qualifiers [@Default]; application.war  
11:04:14,494 DEBUG [org.jboss.weld.deployer] (MSC service thread 1-3) Discovered SYNTHETIC BeanDeploymentArchive (org.hibernate.validator.cdi:main.additionalClasses)  
11:04:14,495 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [javax.enterprise.inject.spi.BeanManager] with qualifiers [@Default]  
11:04:14,495 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [org.jboss.weld.manager.BeanManagerImpl] with qualifiers [@Default]  
11:04:14,504 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Extension [class org.hibernate.validator.internal.cdi.ValidationExtension] with qualifiers [@Default]; application.war  
11:04:14,509 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Extension [class com.sun.faces.flow.FlowDiscoveryCDIExtension] with qualifiers [@Default]; application.war  
11:04:14,512 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Extension [class com.sun.faces.application.view.ViewScopeExtension] with qualifiers [@Default]; application.war  
11:04:14,513 DEBUG [org.jboss.weld.deployer] (MSC service thread 1-3) Discovered SYNTHETIC BeanDeploymentArchive (org.jberet.jberet-core:main.additionalClasses)  
11:04:14,514 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [javax.enterprise.inject.spi.BeanManager] with qualifiers [@Default]  
11:04:14,514 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [org.jboss.weld.manager.BeanManagerImpl] with qualifiers [@Default]  
11:04:14,516 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Extension [class org.jberet.creation.BatchCDIExtension] with qualifiers [@Default]; application.war  
11:04:14,520 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Extension [class org.omnifaces.cdi.eager.EagerExtension] with qualifiers [@Default]; application.war  
11:04:14,521 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [javax.enterprise.inject.spi.BeanManager] with qualifiers [@Default]  
11:04:14,521 DEBUG [org.jboss.weld.Bootstrap] (MSC service thread 1-3) WELD-000106: Bean: Built-in Bean [org.jboss.weld.manager.BeanManagerImpl] with qualifiers [@Default]  
11:04:15,712 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.unit."application.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."application.war".WeldStartService: Failed to start service  
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_05]  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_05]  
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_05]  
Caused by: java.lang.reflect.MalformedParameterizedTypeException  
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.validateConstructorArguments(ParameterizedTypeImpl.java:58) [rt.jar:1.8.0_05]  
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.<init>(ParameterizedTypeImpl.java:51) [rt.jar:1.8.0_05]  
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(ParameterizedTypeImpl.java:92) [rt.jar:1.8.0_05]  
    at sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(CoreReflectionFactory.java:105) [rt.jar:1.8.0_05]  
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:140) [rt.jar:1.8.0_05]  
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) [rt.jar:1.8.0_05]  
    at sun.reflect.generics.repository.ConstructorRepository.getParameterTypes(ConstructorRepository.java:94) [rt.jar:1.8.0_05]  
    at java.lang.reflect.Executable.getGenericParameterTypes(Executable.java:279) [rt.jar:1.8.0_05]  
    at java.lang.reflect.Method.getGenericParameterTypes(Method.java:268) [rt.jar:1.8.0_05]  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.initParameters(BackedAnnotatedMethod.java:44)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.initParameters(BackedAnnotatedMethod.java:27)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedCallable.<init>(BackedAnnotatedCallable.java:34)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.<init>(BackedAnnotatedMethod.java:38)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.of(BackedAnnotatedMethod.java:32)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:193)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:186)  
    at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:35)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$EagerlyInitializedLazyValueHolder.<init>(BackedAnnotatedType.java:154)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.<init>(BackedAnnotatedType.java:66)  
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.of(BackedAnnotatedType.java:47)  
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:83)  
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:80)  
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)  
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)  
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)  
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)  
    at com.google.common.cache.LocalCache.get(LocalCache.java:3934)  
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)  
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)  
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:52)  
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:80)  
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:175)  
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:194)  
    at org.jboss.weld.bootstrap.BeanDeployer.loadAnnotatedType(BeanDeployer.java:119)  
    at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:96)  
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62)  
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60)  
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)  
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)  
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_05]  
    ... 3 more  

11:04:15,744 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "application.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"application.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"application.war\".WeldStartService: Failed to start service  
    Caused by: java.lang.reflect.MalformedParameterizedTypeException"}}  
11:04:15,760 ERROR [org.jboss.as.server] (management-handler-thread - 2) JBAS015870: Deploy of deployment "application.war" was rolled back with the following failure message:   
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"application.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"application.war\".WeldStartService: Failed to start service  
    Caused by: java.lang.reflect.MalformedParameterizedTypeException"}}  
11:04:15,792 DEBUG [org.wildfly.jberet] (MSC service thread 1-7) Removing batch environment; ModuleClassLoader for Module "deployment.application.war:main" from Service Module Loader  
11:04:15,816 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 25) JBAS011410: Stopping Persistence Unit (phase 2 of 2) Service 'application.war#primary'  
11:04:15,817 DEBUG [org.hibernate.internal.SessionFactoryImpl] (ServerService Thread Pool -- 25) HHH000031: Closing  
11:04:15,817 DEBUG [org.hibernate.cache.infinispan.InfinispanRegionFactory] (ServerService Thread Pool -- 25) Stop region factory  
11:04:15,817 DEBUG [org.hibernate.cache.infinispan.InfinispanRegionFactory] (ServerService Thread Pool -- 25) Clear region references  
11:04:15,840 INFO  [org.infinispan.factories.GlobalComponentRegistry] (ServerService Thread Pool -- 25) ISPN000128: Infinispan version: Infinispan 'Infinium' 6.0.2.Final  
11:04:16,177 DEBUG [org.infinispan.interceptors.InterceptorChain] (ServerService Thread Pool -- 25) Interceptor chain size: 6  
11:04:16,177 DEBUG [org.infinispan.interceptors.InterceptorChain] (ServerService Thread Pool -- 25) Interceptor chain is:   
    >> org.infinispan.interceptors.InvocationContextInterceptor  
    >> org.infinispan.interceptors.CacheMgmtInterceptor  
    >> org.infinispan.interceptors.NotificationInterceptor  
    >> org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor  
    >> org.infinispan.interceptors.EntryWrappingInterceptor  
    >> org.infinispan.interceptors.CallInterceptor  
11:04:16,183 DEBUG [org.infinispan.jmx.JmxUtil] (ServerService Thread Pool -- 25) Object name jboss.infinispan:type=Cache,name="local-query(local)",manager="hibernate",component=Cache already registered  
11:04:16,184 INFO  [org.infinispan.jmx.CacheJmxRegistration] (ServerService Thread Pool -- 25) ISPN000031: MBeans were successfully registered to the platform MBean server.  
11:04:16,190 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 25) JBAS010281: Started local-query cache from hibernate container  
11:04:16,192 DEBUG [org.infinispan.CacheImpl] (ServerService Thread Pool -- 25) Started cache local-query on null  
11:04:16,200 DEBUG [org.hibernate.service.internal.AbstractServiceRegistryImpl] (ServerService Thread Pool -- 25) Implicitly destroying ServiceRegistry on de-registration of all child ServiceRegistries  
11:04:16,200 DEBUG [org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl] (ServerService Thread Pool -- 25) Implicitly destroying Boot-strap registry on de-registration of all child ServiceRegistries  
11:04:16,201 DEBUG [org.hibernate.jpa.internal.EntityManagerFactoryRegistry] (ServerService Thread Pool -- 25) Remove: name=application.war#primary  
11:04:16,202 INFO  [org.jboss.weld.deployer] (MSC service thread 1-3) JBAS016009: Stopping weld service for deployment application.war  
11:04:16,297 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 25) JBAS011410: Stopping Persistence Unit (phase 1 of 2) Service 'application.war#primary'  
11:04:16,302 DEBUG [org.jboss.as.clustering.infinispan.subsystem] (ServerService Thread Pool -- 25) local-query cache configuration stopped  
11:04:16,301 DEBUG [org.jboss.as.clustering.infinispan.subsystem] (ServerService Thread Pool -- 22) timestamps cache configuration stopped  
11:04:16,302 DEBUG [org.jboss.as.clustering.infinispan.subsystem] (ServerService Thread Pool -- 24) entity cache configuration stopped  
11:04:16,303 DEBUG [org.infinispan.manager.DefaultCacheManager] (MSC service thread 1-4) Stopping cache manager ISPN on null  
11:04:16,306 DEBUG [org.infinispan.CacheImpl] (MSC service thread 1-4) Stopping cache local-query on null  
11:04:16,309 DEBUG [org.infinispan.transaction.TransactionTable] (MSC service thread 1-4) Wait for on-going transactions to finish for 30 seconds.  
11:04:16,310 DEBUG [org.infinispan.transaction.TransactionTable] (MSC service thread 1-4) All transactions terminated  
11:04:16,311 INFO  [org.jboss.as.clustering.infinispan] (MSC service thread 1-4) JBAS010282: Stopped local-query cache from hibernate container  
11:04:16,317 DEBUG [org.jboss.as.clustering.infinispan.subsystem] (MSC service thread 1-4) hibernate cache container stopped  
11:04:16,330 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015877: Stopped deployment application.war (runtime-name: application.war) in 555ms 

ОБНОВИТЬ:

Исключение MalformedParameterizedTypeException

«Вызывается, когда семантически искаженный параметризованный тип встречается с отражающим методом, которому необходимо создать его экземпляр. Например, если количество аргументов типа для параметризованного типа неверно».


person Patrick Garner    schedule 12.08.2014    source источник
comment
Проверьте свою конфигурацию для Infinispan. Stacktrace дает вам эту подсказку.   -  person Luiggi Mendoza    schedule 12.08.2014
comment
@LuiggiMendoza Почему Infinispan? Я ничего не менял в Infinispan. Я думаю, что это что-то в моем коде, универсальный класс не имеет правильного параметризованного типа во время выполнения. Трассировка стека не указывает на место в моем коде, чтобы дать мне понять, где находится проблема. Я обновил свой вопрос со ссылкой на сообщение об ошибке, связанное с исключением MalformedParameterizedTypeException.   -  person Patrick Garner    schedule 12.08.2014
comment
О, ты прав. Я смешал сообщения ERROR с сообщениями Infinispan в нижней части трассировки стека, это плохо.   -  person Luiggi Mendoza    schedule 12.08.2014
comment
Поскольку это происходит, когда Weld выполняет свою магию запуска CDI, кажется, что один из написанных мной bean-компонентов имеет искаженный параметризованный тип. Поскольку трассировка стека не указывает, что это за bean-компонент или местонахождение кода, я не совсем уверен, как приступить к устранению неполадок. Я попытался установить уровень ведения журнала на TRACE, и это не пролило никакого света. Я надеюсь избежать грубой силы восстановления измененного исходного кода по пакетам, но это кажется моим единственным вариантом на данный момент.   -  person Patrick Garner    schedule 12.08.2014


Ответы (1)


Я был не в себе. С моим кодом вообще не было проблем. Проблема заключалась в том, что в моем проекте была зависимость, несовместимая с модулем JEE, установленным на сервере.

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>

    <!--
      scope=compile prevents
      Warning:java: Cannot find annotation method 'max()' in type 'javax.validation.constraints.Size':
          class file for javax.validation.constraints.Size not found
    -->
    <scope>compile</scope>

</dependency>

Проблема началась, когда Intellij (но не Maven) начал выдавать предупреждения, подобные приведенному выше, при компиляции. Следующее изменение устранило проблему MalformedParameterizedTypeException, но вновь добавило надоедливое предупреждение Intellij.

<scope>provided</scope>

Служба поддержки JetBrains создала новую проблему в своем трекере ошибок: http://youtrack.jetbrains.com/issue/IDEA-127569

person Patrick Garner    schedule 16.08.2014