2015-05-07 2 views
1

Я пытаюсь перенести наш проект с Wildfly 8.2 до 9 и используя версию 9.0.0 CR1.Переход Wildfly с 8.2 до 9 CR1

Одна из проблем, с которыми я столкнулся, - это старый код EJB2. В то время как в 8.2 все работает нормально, в 9 я получаю

ERROR [org.jboss.as.ejb3.invocation] (MSC service thread 1-2) WFLYEJB0034: EJB Invocation failed on component MetadataInstanceFacade for method public abstract java.util.Collection com.mypackage.ejb.session.metadata.MetadataInstanceFacadeLocal.findByMetatypeAndUpperInstanceId2(java.lang.Integer,java.lang.Integer,java.lang.Boolean): javax.ejb.EJBException: java.lang.IllegalStateException: WFLYEE0067: Method does not exist public final java.util.Collection com.mypackage.ejb.session.metadata.InstanceFacadeBean.findByMetatypeAndUpperInstanceId2(java.lang.Integer,java.lang.Integer,java.lang.Boolean) 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInNoTx(CMTTxInterceptor.java:213) 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:265) 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.supports(CMTTxInterceptor.java:374) 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:243) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:66) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories$2.processInvocation(EjbExceptionTransformingInterceptorFactories.java:103) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356) 
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:634) 
    at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356) 
    at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:195) 
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73) 
    at com.mypackage.ejb.session.metadata.MetadataInstanceFacadeLocal$$$view113.findByMetatypeAndUpperInstanceId2(Unknown Source) 
    at com.mypackage.media.bd.metadata.InstanceBD.findByMetatypeAndUpperInstanceId2(InstanceBD.java:252) 
    at com.mypackage.util.ApplicationContextListener.contextInitialized(ApplicationContextListener.java:377) 
    at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:173) 
    at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:195) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:86) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:71) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.IllegalStateException: WFLYEE0067: Method does not exist public final java.util.Collection com.mypackage.ejb.session.metadata.InstanceFacadeBean.findByMetatypeAndUpperInstanceId2(java.lang.Integer,java.lang.Integer,java.lang.Boolean) 
    at org.jboss.as.ee.component.BasicComponentInstance.getInterceptor(BasicComponentInstance.java:102) 
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.interceptors.NonPooledEJBComponentInstanceAssociatingInterceptor.processInvocation(NonPooledEJBComponentInstanceAssociatingInterceptor.java:59) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:263) 
    ... 55 more 

Интерфейсы EJB2 и XML генерируются xdoclet.

Любые идеи, почему это происходит и как это исправить?

ответ

2

Это было из-за модификатора метода final.

+0

Мы сталкиваемся с той же проблемой. Можете ли вы пролить свет на то, почему «final» is * evil * в этом контексте? * Миграция формы WildFly-8.1.0.Final в WildFly-9.0.1.Final здесь * – Rob

+1

«При создании прокси-сервера без интерфейса, контейнер EJB должен создать подкласс класса EJB и переопределить все общедоступные методы для обеспечения проксирования поведение." - поэтому он не может этого сделать, когда метод является окончательным. – dds

+0

Можете ли вы предоставить источник этому? Я все еще запутался, что WF-8.x и WF-9.x, похоже, справляются с этим. – Rob