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