Spring-Konfiguration für JMS (Websphere MQ - SSL, Tomcat, JNDI, Nicht IBM JRE)

Hintergrund:
Ich habe eine relativ alte Anwendung, die verwendet Websphere MQ für messaging. Es läuft auf WAS (Websphere Application Server) und nutzt MDBs (Message Driven Beans). Ich war erfolgreich in der Lage, Sie zu ersetzen alle MDBs mit Spring-Integration - JMS. Mein Nächster Schritt ist zu versuchen, um zu sehen, ob ich die Portierung aus WAR, so dass es auf jedem anderen servlet-container mit einer nicht-IBM-JRE (ich bin versucht: apache tomcat). Beachten Sie, dass die Sicherung der Kanäle, die mithilfe von SSL eine Anforderung. Ich bevorzuge die Verwendung von JNDI.

Ziel:
Zur Entkopplung von meiner Applikation aus der application server (was) und andere Infrastrukturen wie messaging (MQ). Aber dies WAR auf tomcat ist der erste Schritt. Als Nächstes kommt die Aufgabe der Aktualisierung meines messaging-Infrastruktur mit etwas mehr skalierbar. Dies ermöglicht es mir, update einzelner Komponenten der Infrastruktur, die meine app setzt auf, eine Sache zu einer Zeit (app-server, messaging-Ebene, datastore) ohne Unterbrechung für meine Anwendung zu viel, wie ich gehen.

Frage:
Nun, meine Herausforderung ist die Definition der JNDI-Ressourcen an tomcat Zugriff auf Websphere MQ. Ich habe einige Fortschritte in Bezug auf diese Verwendung von nicht-SSL-Kanäle, die ich definiert context.xml Datei etwa so:

<Resource
   name="jms/qcf_sandbox"
   auth="Container"
   type="com.ibm.mq.jms.MQQueueConnectionFactory"
   factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"
   description="JMS Queue Connection Factory for sending messages"
   HOST="localhost"
   PORT="1414"
   CHAN="CHANNEL_SANDBOX"
   TRAN="1"
   QMGR="QM_SANDBOX"/>
<Resource
   name="jms/SandboxQ"
   auth="Container"
   type="com.ibm.mq.jms.MQQueue"
   factory="com.ibm.mq.jms.MQQueueFactory"
   description="JMS Queue"
   QU="SANDBOX_Q"/>

Mein Nächster Schritt ist, um diese zum arbeiten mit SSL-Kanäle. Ich verstehe, dass der Teil umfasst das einrichten der keystores (kdb-Datei und cert-generation und Austausch), das konfigurieren des SSL-Kanäle auf der QM-etc. Ich habe alle, die arbeiten schon. Wie bekomme ich tomcat verwenden, meine keystore -, cipher-suite etc.? Zeiger oder ein funktionierendes Beispiel wäre toll!

Hinweis: ich bin mit Spring Integration 4.2, Websphere MQ v8, Tomcat v9, aktuell.

Muss ich hinzufügen, dass ich habe versucht, alles ohne den JNDI-ersten. Also hier mein spring jms nicht-ssl-config-ohne JNDI, das funktioniert:

<bean id="mq-jms-cf-sandbox"
   class="org.springframework.jms.connection.SingleConnectionFactory">
    <property name="targetConnectionFactory">
    <ref bean="mqQueueConnectionFactory" />
    </property>
</bean>
<bean id="mqQueueConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
   <property name="hostName" value="localhost" />
   <property name="port" value="1414" />
   <property name="queueManager" value="QM_SANDBOX" />
   <property name="transportType" value="1" />
   <property name="channel" value="CHANNEL_SANDBOX" />
 </bean>
 <bean id="jms-destination-sandbox" class="com.ibm.mq.jms.MQQueue">
   <constructor-arg value="SANDBOX_Q" />
    <property name="baseQueueManagerName">
    <value>QM_SANDBOX</value>
    </property>
    <property name="baseQueueName">
    <value>SANDBOX_Q</value>
    </property>
</bean> 
InformationsquelleAutor code4kix | 2016-03-29
Schreibe einen Kommentar