"main" java.lang.NoClassDefFoundError

Gape

Grünschnabel
Wenn ich alles im Rad/Eclipse abspielen lasse, dann funktionierts. Wenn ich das als runable jar exportiere, dann kommt das.

Ich versuche aus nem J2Se programm auf den Websphere zuzugreifen um JMS zu verwenden.

Wie gesagt in der IDE geht alles.

Code:
Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/CORBA/i
        at com.ibm.ws.orb.GlobalORBFactory.init(GlobalORBFactory.java:92)
        at com.ibm.ejs.oa.EJSORBImpl.initializeORB(EJSORBImpl.java:179)
        at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:83
        at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:59
        at com.ibm.ejs.oa.EJSORB.init(EJSORB.java:102)
        at com.ibm.ws.naming.util.Helpers.getOrb(Helpers.java:356)
        at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInter
        at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:12
        at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.j
        at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:164)
        at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:179)
        at javax.naming.InitialContext.lookup(Unknown Source)
        at simulator.jms.JMS.<init>(JMS.java:51)
        at simulator.Simulator.<clinit>(Simulator.java:21)
Caused by: java.lang.ClassNotFoundException: com.ibm.CORBA.iiop.ORB
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        ... 14 more
Could not find the main class: simulator.Simulator. Program will exit.


Viele Grüße

Steffen
 
Zuletzt bearbeitet:
Wenn ich das richtig verstehe zeigt dein Classpath nicht auf com.ibm.CORBA.iiop.ORB. Diese wird aber in der Klasse die du in der main initialisierst benötigt (Wäre wohl die Klasse simulator.Simulator)


Gruss
 
Ok , danke. Du hast recht er vermisst was. Er fängt das Programm nicht mal an zu starten. Jetzt muss ich nur noch herausfinden was er vermisst und wo ich es herbekomme. ;)
 
Moin,

Du kannst Dich in der Java-Konsole, wenn die Fehlermeldung angezeigt, über die Links in den einzelnen Zeilen zu Deine Source durchklicken!

Allerdings vermute ich stark dies hier:
Code:
at simulator.Simulator.<clinit>(Simulator.java:21)
davon ausgehend, das Dein Programm "Simulator heißt!

Gruß
Klaus
 
ja so heißt es.

Code:
try
		{
			Hashtable<String, String> env = new Hashtable<String,String>();
			env.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
			env.put(Context.PROVIDER_URL, "iiop://localhost:2816/");
			Context initialContext = new InitialContext(env);

			System.out.println(initialContext.getNameInNamespace());
			QueueConnectionFactory qcFactory = (QueueConnectionFactory) initialContext.lookup("jms/QueueConnectionFactory");


in der letzten Zeile ist der Fehler.
Was aber erstaunlich ist, dass er nicht mit der Abarbeitung des Programmes beginnt, sondern sofort erkennt, dass da was fehlt. Es scheint also kein Fehler zur Laufzeit zu sein .

Ich versuch jetzt schon die ganze Zeit diese Jar zu finden, die ich scheinbar nicht eingebunden habe.
 
Moin,

hmm ... ich kenne die "QueueConnectionFactory", würdeaber auch das Gleiche vermuten, wie jeipack schon schrieb!

Google mal danach - Du bekommst etliche Seiten zum Umgang mit der Klasse, auch mit Beispielen! Vlt. helfen die Dir ja auch weiter ....

Gruß
Klaus
 
Mit der Programmierung ist ja alles in Ordnung.
In der Entwicklungsumgebung läuft alles wunderbar.

Nur wenn ich versuche eine Simulator.jar daraus zu machen und diese dann zu starten, dann gibts auf einmal Probleme.

Googlen tu ich immer bevor ich was frage. ;)
 
Ich kann nirgendwo finden wo "com.ibm.CORBA.iiop.ORB" liegen soll.
hab im Internet oft iwsorb.jar gelesen. Aber die Datei hab ich auch nicht.

CLASSPATH ist von mir nicht verändert worden. Die Frage ist auch hier wieder: Warum gehts in Eclipse und nicht in Real ;)

Ich hoffe ich komm bald drauf.

Die Jar erstell ich mit Eclipse.
 
Ich haaaaab. Endlich. Nach 6 Std. Frust. Ich danke allen.

herzlichen Dank an alle, die mir versucht haben zu helfen.

letztlich hat eine Zeile Code gefehlt, die ich irgendwo im Netz gefunden habe.

Code:
env.put("java.naming.corba.orb",org.omg.CORBA.ORB.init((String[])null,null));

Was sie bedeutet weiß ich nicht und auch nicht warum es ohne sie zwar in Eclipse funktionierte, aber nicht in der exportierten Jar.


Jetzt gehts.
 

Neue Beiträge

Zurück