ClassCastException: javax.naming.Reference kann nicht in javax.jms.ConnectionFactory umgewandelt werden

8

Ich habe ein Java-Programm geschrieben, um eine Verbindung zu WebSphere MQ herzustellen, um Nachrichten zu veröffentlichen. Ich habe einen JNDI-Namespace, eine Verbindungsfactory, Ziele und einen Warteschlangenmanager in WebSphere MQ Explore erstellt. Wenn ich mein Programm starte, zeigt es ClassCastException für den Typcast von string bis ConnectionFactory .

Hier ist mein Code. Kann jemand helfen, dieses Problem zu lösen.

JNDIUtil.java

%Vor%

NewPublisher.java

%Vor%

Erhalte den Fehler in diesen Zeilen:

%Vor%     
seshank 24.07.2013, 05:45
quelle

3 Antworten

2

Sie vermissen einige JARs von MQ Client , damit dies funktioniert. Ich hatte den gleichen Fehler, und nach einigen weiteren Untersuchungen endete ich mit dieser Liste von Jars, damit das funktionierte:

  • com.ibm.mq.jmqi.jar
  • com.ibm.mqjms.jar
  • dhbcore.jar
  • fscontext.jar
  • providerutil.jar
  • com.ibm.mq.headers.jar
Ualter Jr. 18.02.2016 11:51
quelle
1

Was Sie aus dem Kontext von jndi erhalten haben, war eine Referenz. Dies ist ein Rezept zum Erstellen der Verbindungsfactory, und ich vermute, dass die dafür verantwortliche Klasse nicht gefunden werden kann, da die erforderlichen MQ-Dateien nicht im Klassenpfad enthalten sind. Die Fehlermeldung ist nicht intuitiv.

Wenn ich das nicht kann, finde ich eine gute Möglichkeit, jndi-Lookup-Probleme zu debuggen, ist, den Kontext zu erfassen und eine list () darauf auszuführen, die Details jedes zurückgegebenen Objekts auszudrucken, nur damit Sie wissen, wo genau es sich befindet das Verzeichnis.

    
Nicholas 24.07.2013 10:05
quelle
0

Fügen Sie die folgenden Gläser zum classpath hinzu:

%Vor%     
user2841410 03.10.2013 06:23
quelle

Tags und Links