Adam Bien's Weblog
Tuesday Jun 10, 2008
How To Get Rid Of: com.sun.messaging.jmq.io.Packet cannot be cast to com.sun.messaging.jms.ra.DirectPacket in Glassfish V2.X
If you are running Glassfish and using JMS (e.g. a Message Driven Bean), you probably saw already the following error in the log files: DirectConsumer:Caught Exception delivering messagecom.sun.messaging.jmq.io.Packet cannot be cast to com.sun.messaging.jms.ra.DirectPacket.
The error is caused by directly embedding the JMS-Host into Glassfish v2 - it can be easily fixed in the admin console:
- Open the admin console: http://localhost:4848
- Select: Configuration -> Java Message Service node in the tree on the left side.
- Change the type from "Embedded" into "Local". The doc says:
"Choose LOCAL (the default for the server-config configuration) to access the JMS service on the local host. The JMS service is started and managed by the Application Server." - Restart Glassfish
Posted at 10:08AM Jun 10, 2008 by Adam Bien in Java EE 5 Architectures And Idioms | Kommentare[2]
[This entry is based on / extends my books: Enterprise Architekturen, Leitfaden fuer effiziente Software-Entwicklung and: Java EE 5 Architekturen, Patterns und Idiome]



Thanks, Adam,
I've just stepped into this trap!
Gesendet von Bernd Zimmermann am June 10, 2008 at 12:17 PM CEST #
Running Glassfish on UBUNTU Linux (probably on other distributions too) I had to do a little more to get type "LOCAL" broker running.
in <glassfish_home>/imq/etc/imqenv.con I found these lines causing problems when GF wants to start the broker:
IMQ_DEFAULT_EXT_JARS=/opt/SUNWhadb/4/lib/hadbjdbc4.jar:/opt/SUNWjavadb/derby.jar:/usr/share/java/postgresql.jar
set IMQ_DEFAULT_JAVAHOME=/usr/lib/jvm/java-6-sun
set IMQ_DEFAULT_VARHOME=/home/bernd/glassfish-v2ur2/domains/domain1/imq
Here 'set' is the problem - because it is not Linux bash compatible.
After removing 'set' the environment vars got assigned as supposed and GF starts without complaining about port 7676 connections.
Cheers,
Bernd
Gesendet von Bernd Zimmermann am June 10, 2008 at 08:51 PM CEST #