EJB3 JDNI lookup error 'unexpected block data'
marcvankessel Jul 27, 2005 6:36 PMI am new to AS / EJB3 and got totally stuck on JDNI lookups, which should be elementary. I can not find the solution on the internet. Any help is greatly appreciated.
Software:
- jboss-4.0.3RC1
- netbeans 4.1
- windows XP
I use the default EJB3 (via graphical installer) JBoss setup and have added jbosssha.jar to the bin directory (did not solve the problem). The Jboss server runs on the same computer as the client.
I have deployed a stateless session bean AddressDAOBean with interface AddressDAO which I can see in the JMX JNDI list view. The persistent EJBs are also visible via JMX Hypersonic database manager.
Global JNDI Namespace +- dao.real.AddressDAO (proxy: $Proxy55 implements interface dao.real.AddressDAO,interface org.jboss.ejb3.JBossProxy)
I have written a test-client to access the EJB. The only included library is jbossall-client.jar and a link to jdni.properties (printed in the output).
try { InitialContext ctx = new InitialContext(); System.out.println(AddressDAO.class.getName()); System.out.println(ctx.getEnvironment()); dao = (AddressDAO) ctx.lookup("dao.real.AddressDAO");//AddressDAO.class.getName()); } catch (Exception e) { e.printStackTrace(); }
Generated error when executing (the jdni.properties are printed first):
run: ngerptest.AddressDAO {jnp.parsedName=, java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.provider.url=localhost:1099, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} javax.naming.CommunicationException [Root exception is java.io.StreamCorruptedException: unexpected block data] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572) at javax.naming.InitialContext.lookup(InitialContext.java:351) at ngerptest.Main.main(Main.java:38) Caused by: java.io.StreamCorruptedException: unexpected block data at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1313) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339) at java.rmi.MarshalledObject.get(MarshalledObject.java:135) at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:57) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:637) ... 3 more BUILD SUCCESSFUL (total time: 0 seconds)
What does the error message: "unexpected block data" mean ? And how can it be resolved.
The deployment log from JBOSS has one Warning:
2005-07-27 23:25:22,609 DEBUG [org.jboss.system.ServiceController] starting service jboss.cache:service=EJB3SFSBClusteredCache 2005-07-27 23:25:22,609 DEBUG [org.jboss.ejb3.cache.tree.PassivationTreeCache] Starting jboss.cache:service=EJB3SFSBClusteredCache 2005-07-27 23:25:22,609 WARN [org.jboss.ejb3.cache.tree.PassivationTreeCache] No transaction manager lookup class has been defined. Transactions cannot be used 2005-07-27 23:25:22,640 INFO [org.jboss.ejb3.cache.tree.PassivationTreeCache] interceptor chain is:
The deployment JBoss log for de ear / business.jar.
2005-07-27 23:25:34,078 DEBUG [org.jboss.deployment.MainDeployer] Watching new file: file:/C:/dev/tools/jboss-4.0.3RC1/server/default/deploy/realerp.ear 2005-07-27 23:25:34,078 DEBUG [org.jboss.deployment.MainDeployer] create step for deployment file:/C:/dev/tools/jboss-4.0.3RC1/server/default/deploy/realerp.ear 2005-07-27 23:25:34,078 DEBUG [org.jboss.deployment.MainDeployer] create step for deployment file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/deploy/tmp4091realerp.ear-contents/business.ejb3 2005-07-27 23:25:34,125 DEBUG [org.jboss.ejb3.EJB3Deployer] Deploying: file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/deploy/tmp4091realerp.ear-contents/business.ejb3 2005-07-27 23:25:34,125 DEBUG [org.jboss.system.ServiceController] Creating service jboss.j2ee:service=EJB3,module=business.ejb3 2005-07-27 23:25:34,125 DEBUG [org.jboss.ejb3.Ejb3Module] Creating jboss.j2ee:service=EJB3,module=business.ejb3 2005-07-27 23:25:34,140 INFO [org.jboss.ejb3.security.JaccHelper] Initialising JACC Context for deployment: business.ejb3 2005-07-27 23:25:34,265 INFO [org.jboss.ejb3.Ejb3AnnotationHandler] found EJB3: ejbName=dao.real.AddressDAOBean, class=dao.real.AddressDAOBean, type=STATELESS 2005-07-27 23:25:34,265 DEBUG [org.jboss.system.ServiceController] Creating service jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean 2005-07-27 23:25:34,265 DEBUG [org.jboss.system.ServiceController] adding depends in ServiceController.register: [] 2005-07-27 23:25:34,265 DEBUG [org.jboss.ejb3.stateless.StatelessManager] Creating jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean 2005-07-27 23:25:34,312 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] Added url: file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/aopdynclasses/ucl4092/?dynamic=true, to ucl: org.jboss.mx.loading.UnifiedClassLoader3@1ed2bbd{ url=file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/deploy/tmp4091realerp.ear ,addedOrder=32} 2005-07-27 23:25:34,375 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] Added url: file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/aopdynclasses/ucl4093/?dynamic=true, to ucl: org.jboss.mx.loading.UnifiedClassLoader3@1bde4{ url=file:/C:/dev/tools/jboss-4.0.3RC1/server/default/deploy/ejb3.deployer/ ,addedOrder=3} 2005-07-27 23:25:34,453 INFO [org.jboss.ejb3.security.JaccHelper] dao.real.AddressDAOBean has no @SecurityDomain - skipping JACC configuration 2005-07-27 23:25:34,453 DEBUG [org.jboss.ejb3.stateless.StatelessManager] Created jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean 2005-07-27 23:25:34,453 DEBUG [org.jboss.system.ServiceController] Creating dependent components for: jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean dependents are: [] 2005-07-27 23:25:34,453 DEBUG [org.jboss.ejb3.Ejb3Module] Bound ejb3 container jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean 2005-07-27 23:25:34,453 INFO [org.jboss.ejb3.security.JaccHelper] JACC Policy Configuration for deployment has been put in service 2005-07-27 23:25:34,453 INFO [org.jboss.ejb3.Ejb3Module] EJB3 deployment time took: 328
and...
2005-07-27 23:25:35,937 DEBUG [org.jboss.deployment.MainDeployer] Done with create step of deploying realerp.ear 2005-07-27 23:25:35,937 DEBUG [org.jboss.deployment.MainDeployer] Begin deployment start file:/C:/dev/tools/jboss-4.0.3RC1/server/default/deploy/realerp.ear 2005-07-27 23:25:35,937 DEBUG [org.jboss.deployment.MainDeployer] Begin deployment start file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/deploy/tmp4091realerp.ear-contents/business.ejb3 2005-07-27 23:25:35,937 DEBUG [org.jboss.ejb3.EJB3Deployer] start application, deploymentInfo: org.jboss.deployment.DeploymentInfo@818824e2 { url=file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/deploy/tmp4091realerp.ear-contents/business.ejb3 } deployer: MBeanProxyExt[jboss.ejb3:service=EJB3Deployer] status: Starting state: START_DEPLOYER watch: file:/C:/dev/tools/jboss-4.0.3RC1/server/default/tmp/deploy/tmp4091realerp.ear-contents/business.ejb3 altDD: null lastDeployed: 1122499534078 lastModified: 1122499534062 mbeans: jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean state: Created , short name: business.ejb3, parent short name: realerp.ear 2005-07-27 23:25:35,937 DEBUG [org.jboss.system.ServiceController] starting service jboss.j2ee:service=EJB3,module=business.ejb3 2005-07-27 23:25:35,937 DEBUG [org.jboss.ejb3.Ejb3Module] Starting jboss.j2ee:service=EJB3,module=business.ejb3 2005-07-27 23:25:35,937 DEBUG [org.jboss.system.ServiceController] starting service jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean 2005-07-27 23:25:35,937 DEBUG [org.jboss.ejb3.stateless.StatelessManager] Starting jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean 2005-07-27 23:25:35,953 DEBUG [org.jboss.ejb3.tx.UserTransactionImpl] new UserTx: org.jboss.ejb3.tx.UserTransactionImpl@b2db5b 2005-07-27 23:25:36,015 INFO [org.jboss.ejb3.ProxyDeployer] no declared remote bindings 2005-07-27 23:25:36,062 DEBUG [org.jboss.ejb.txtimer.EJBTimerServiceImpl] createTimerService: org.jboss.ejb.txtimer.TimerServiceImpl@5c18ff 2005-07-27 23:25:36,062 DEBUG [org.jboss.ejb3.stateless.StatelessManager] Started jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean 2005-07-27 23:25:36,062 DEBUG [org.jboss.system.ServiceController] Starting dependent components for: jboss.j2ee:service=EJB3,name=dao.real.AddressDAOBean dependent components: [] 2005-07-27 23:25:36,062 DEBUG [org.jboss.ejb3.Ejb3Module] startService, starting container: dao.real.AddressDAOBean
Thanks in advance for your time / help.
Marc