Rias A. Sherzad [
http://community.jboss.org/people/rsherzad] created the discussion
"JNDI Lookup fails with an ArrayStoreException"
To view the discussion, visit:
http://community.jboss.org/message/635239#635239
--------------------------------------------------------------
Hello everyone and "Guten Tag" from Germany :-)
I've been spending the past few days with a very strange problem that I just can't
find a solution for.
We have successfully deployed our application to JBoss 5.1 and we're now trying to
port it to JBoss 6.1 (with the same JDK - version 1.6.0_26). There's an .EAR, and a a
.WAR file and, deployed into the "default" server, JBoss starts up cleanly
(registers the EJBs etc. in the JNDI tree) and the web application also loads its first
page.
The problem comes up when I attempt to login. That's when the web application accesses
the EJBs defined in the .EAR file (trying to find UserControllerBean) to load some of the
information associated with the user record.
The Stacktrace I see is:
Starting Login...
[org.jnp.interfaces.TimedSocketFactory] (http-127.0.0.1-8080-5) createSocket, hostAddr:
/127.0.0.1, port: 1099, localAddr: null, localPort: 0, timeout: 0
[org.jboss.ejb3.proxy.impl.objectfactory.ProxyObjectFactory] (http-127.0.0.1-8080-5)
org.jboss.ejb3.proxy.impl.objectfactory.ProxyObjectFactory servicing request for
myapp-kernel-1.0-SNAPSHOT/UserControllerBean/remote
javax.naming.NamingException: Could not dereference object [Root exception is
java.lang.ArrayStoreException:
org.jboss.ejb3.proxy.impl.remoting.IsLocalProxyFactoryInterceptor]
at
org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1508)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:824)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at
com.castnote.comp.service.ComponentLocatorFactory.lookup(ComponentLocatorFactory.java:39)
at
com.castnote.comp.service.ComponentLocatorFactory.lookup(ComponentLocatorFactory.java:34)
at
com.castnote.server.core.action.AbstractAction.getUserController(AbstractAction.java:292)
at com.castnote.server.content.LoginAction.login(LoginAction.java:95)
at com.castnote.server.content.LoginAction.execute(LoginAction.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
at
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
at
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
at
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
at
org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
at
org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
at
org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ArrayStoreException:
org.jboss.ejb3.proxy.impl.remoting.IsLocalProxyFactoryInterceptor
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:771)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688)
at
org.jboss.ejb3.proxy.impl.objectfactory.ProxyObjectFactory.getProxyFactoryFromJNDI(ProxyObjectFactory.java:240)
at
org.jboss.ejb3.proxy.impl.objectfactory.ProxyObjectFactory.getObjectInstance(ProxyObjectFactory.java:157)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1483)
at
org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1500)
... 79 more
As far as I can tell this particular EJB has been deployed properly:
22:12:31,516 WARN [TimerServiceContainer] EJBTHREE-2193: using deprecated
TimerServiceFactory for restoring timers
22:12:31,522 INFO [SessionSpecContainer] Starting
jboss.j2ee:ear=myapp-kernel-1.0-SNAPSHOT.ear,jar=myapp-kernel-ejb-1.0-SNAPSHOT.jar,name=UserControllerBean,service=EJB3
22:12:31,529 INFO [EJBContainer] STARTED EJB:
com.myapp.comp.user.controller.UserControllerBean ejbName: UserControllerBean
22:12:31,663 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global
JNDI:
myapp-kernel-1.0-SNAPSHOT/UserControllerBean/remote - EJB3.x Default Remote
Business Interface
myapp-kernel-1.0-SNAPSHOT/UserControllerBean/remote-com.mycompany.sys.control.AbstractStatelessController
- EJB3.x Remote Business Interface
myapp-kernel-1.0-SNAPSHOT/UserControllerBean/remote-com.myapp.comp.user.controller.UserController
- EJB3.x Remote Business Interface
myapp-kernel-1.0-SNAPSHOT/UserControllerBean/local - EJB3.x Default Local
Business Interface
myapp-kernel-1.0-SNAPSHOT/UserControllerBean/local-com.myapp.comp.user.controller.UserControllerLocal
- EJB3.x Local Business Interface
I have to add that myapp-portal.war/WEB-INF/lib contains myapp-kernel-ejb-1.0-SNAPSHOT.jar
(the .WAR needs this .JAR as it used the classes in it), which is the same file that is
also present in the root of myapp-kernel-1.0-SNAPSHOT.ear.
I'm using Maven but not the "skinny WAR"-approach so lots of other libraries
that are present and used in the .EAR file are also in the .WAR file's WEB-INF/lib
folder.
One more thing: I also tried the "skinny WAR"-approach - didn't help. I
thought if all classes are deployed from within the same artifact then the lookup would
work or potential classloading issues (if this is one at all) could be evaded. I got
exactly the same error message :-/
Any idea or advice could help. Thanks in advance :-)
Rias
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/635239#635239]
Start a new discussion in EJB3 at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]