Monday, August 20, 2007

feature


feature
Originally uploaded by dratz

What have they done with com/sun/corba/se/connection/ORBSocketFactory?

We are using Weblogic 8.1.4 and I am writing a monitoring program that will let me know if all the required EJBs, data sources and other resources are up. My current project is a enterprise level system with hooks into lots of things. It can take some to to determine which resource is causing the problem. I was using the weblogic.jar but it is way too big. replacing it with wlclient.jar results in:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/corba/se/connection/ORBSocketFactory
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
 at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:169)
 at weblogic.corba.j2ee.naming.ORBHelper.(ORBHelper.java:113)
 at weblogic.corba.client.ClientORBInitializer.initialize(ClientORBInitializer.java:84)
 at weblogic.jndi.WLInitialContextFactory.(WLInitialContextFactory.java:29)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
 at java.lang.Class.newInstance0(Class.java:355)
 at java.lang.Class.newInstance(Class.java:308)
 at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
 at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
 at javax.naming.InitialContext.init(InitialContext.java:223)
 at javax.naming.InitialContext.(InitialContext.java:197)
 at org.springframework.jndi.JndiTemplate.createInitialContext(JndiTemplate.java:105)
 at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:83)
 at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:121)
 at com.ihc.phc.monitor.JndiMonitor.getStatus(JndiMonitor.java:29)
 at com.ihc.phc.monitor.Monitor.getAllStatus(Monitor.java:21)
 at com.ihc.phc.monitor.Main.main(Main.java:12)
Oh how pleasant. This error has been report as bug 6340079 which states: Reason for compilation errors: ------------------------------
The following packages are not there on jdk1.5.0 but they are in j2sdk1.4.2 1.com.sun.corba.se.connection.* 2.com.sun.corba.se.internal.core.*
How was this problem resolved? Remove the offending unit test of course. There is also another thread on the subject stating basically the same thing but without helpful suggestions. The only helpful suggestion seems to have been to try the wlclient jar from a newer version of the WebLogic server (9 or 10). I tried that and now the ClassDefNotFoundError goes away. Now there is a runtime error:
              [java.rmi.MarshalException: CORBA MARSHAL 0 Maybe; nested exception is: 
 org.omg.CORBA.MARSHAL:   vmcid: 0x0  minor code: 0 completed: Maybe]
You know, indecision is bad enough in humans, I do not need it in computers. Maybe it worked? Slight chance I would say. Ok, looks like the newer (9.1) wlclient.jar is not compatible with older (8.1) weblogic instances. Funny thing is, the weblogic.jar with all its bloat works. I wonder ..... Looks like the weblogic.jar has it's own version of the ORBSocketFactory and that is does not use the sun one. Oh bother! Guess it is back to the bloated weblogic.jar for me.

Thursday, August 16, 2007

Watch "Advanced Topics in Programming Languages: Java Puzzlers, Episode VI"

Advanced Topics in Programming Languages: Java Puzzlers, Episode VI 1 hr 13 min 49 sec - Jul 23, 2007 Average rating: (23 ratings) Description: Google Tech Talks July 23, 2007 ABSTRACT Java Puzzlers, Episode VI: The Phantom-Reference Menace/Attack of the Clone/Revenge of the Shift. Josh Bloch and special guest star Bill Pugh present yet another installment in the continuing saga of Java Puzzlers, consisting of eight more programming puzzles for your entertainment and enlightenment. The game show format keeps you on your toes while the puzzles teach you about the subtleties of the Java programming language and its core libraries. Anyone with a working knowledge of the language will be able to understand the puzzles, but even the most seasoned veterans will be challenged. The lessons you take from this session are directly applicable to your programs and designs. Some of the jokes may even be funny. If you loathed Episodes I--V, you'll detest Episode VI. Come early, because overripe fruit will, as usual, be given to the first 50 attendees. This is a repeat of a talk given at Google in May and at JavaOne 2007.

Want to see more cool videos? Go to video.google.com/

Think you have an even cooler video? Add it at video.google.com/videouploadform

If you're having trouble watching the video, try copying the following URL into your browser: http://video.google.com/videoplay?docid=9214177555401838409&pr=goog-sl

Monday, August 13, 2007

LISP Cycles

I admit it, I like LISP. There are a certain set of programming problems that it handles elegantly. I feel the same about AWK, BASH, SQL and even JAVA. Each language has a sweet spot, that domain of problems it is well suited to solve. While other languages can address the issue, some are more painful than others. My "perfect world of programming": Allow the programmer to solve the problem using the correct tool. That is, remove the "If all you have is a hammer, everything looks like a nail" attitude. I am sick to death of OR mapping in Java, as an example. If there were some way to build pieces using the proper tool and then combine them into a complete solution. See SEWER.