Hello,
I'm using TomEE+ 1.5.2 and from times to times an exception occurs with
one of my EJBs:
java.lang.IllegalArgumentException:
com.hildeberto.architect.system.business.ApplicationBean is not an interface
Indeed, it is not an interface, but a Stateless EJB anotated with
@LocalBean to avoid the need for interfaces. Unfortunately, it is
impossible to predict when it occurs. The entire stacktrace is the
following:
nov. 28, 2013 4:12:10 PM org.apache.catalina.core.StandardWrapperValve
invoke
Grave: Servlet.service() for servlet [Faces Servlet] in context with
path [/architect] threw exception
[com.hildeberto.architect.system.business.ApplicationBean is not an
interface] with root cause
java.lang.IllegalArgumentException:
com.hildeberto.architect.system.business.ApplicationBean is not an interface
at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:496)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:722)
at
org.apache.openejb.client.proxy.Jdk13ProxyFactory.newProxyInstance(Jdk13ProxyFactory.java:127)
at
org.apache.openejb.client.proxy.ProxyManager.newProxyInstance(ProxyManager.java:109)
at
org.apache.openejb.client.EJBObjectHandler.createEJBObjectProxy(EJBObjectHandler.java:197)
at
org.apache.openejb.server.ejbd.ClientObjectFactory.getBusinessObject(ClientObjectFactory.java:161)
at
org.apache.openejb.server.ejbd.EjbDaemon.getBusinessObject(EjbDaemon.java:300)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._writeReplace(EjbObjectProxyHandler.java:216)
at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:233)
at
com.hildeberto.architect.system.business.ApplicationBean$LocalBeanProxy.writeReplace(com/hildeberto/architect/system/business/ApplicationBean.java)
at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1075)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1132)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1541)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1506)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1429)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.HashMap.writeObject(HashMap.java:1133)
at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1429)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1375)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1171)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.HashMap.writeObject(HashMap.java:1133)
at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1429)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1375)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1171)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1375)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1171)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at
org.apache.myfaces.shared.util.StateUtils.getAsByteArray(StateUtils.java:292)
at
org.apache.myfaces.shared.util.StateUtils.construct(StateUtils.java:248)
at
org.apache.myfaces.renderkit.html.HtmlResponseStateManager.writeViewStateField(HtmlResponseStateManager.java:157)
at
org.apache.myfaces.renderkit.html.HtmlResponseStateManager.writeState(HtmlResponseStateManager.java:135)
at
org.apache.myfaces.application.StateManagerImpl.writeState(StateManagerImpl.java:360)
at
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:2022)
at
org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
at
javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
at
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
at
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
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:724)
You can see the implementation at:
https://github.com/htmfilho/architect/blob/master/src/main/java/com/hildeberto/architect/system/business/ApplicationBean.java
Any idea how to avoid/solve this?