我想學習Spring集成,併爲了這個,我想創建這樣的應用程序:Spring集成與Oracle AQ
從甲骨文我發送郵件(在Oracle隊列),此消息將被攔截從一個Java應用程序(使用Spring Integration進行構建),應用程序將根據收到的消息發送一封電子郵件。該消息將包含To: - 抄送:以及要發送的文本。
爲了進行這種溝通,我決定使用JMS(我認爲在Oracle中這是使用Oracle AQ製作的)。
在數據庫中,我已經創建了隊列,現在我正在嘗試創建一個簡單的applicationContext.xml來啓動這個握手。
尋找網絡我發現真的很少文章(春季集成+甲骨文AQ),我得到一些錯誤。主要錯誤是這樣的:java.lang.ClassNotFoundException: oracle.jms.AQjmsFactory
現在這是我的applicationContext.xml
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:orcl="http://www.springframework.org/schema/data/orcl"
xmlns:int-jms="http://www.springframework.org/schema/integration/jms"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
http://www.springframework.org/schema/data/orcl http://www.springframework.org/schema/data/orcl/spring-data-orcl-1.0.xsd">
<int:channel id="inbound" />
<int:channel id="outbound" />
<bean id="simpleMessageListener" class="it.dirimo.SimpleMessageListener" />
<int-jms:inbound-channel-adapter
channel="inbound"
connection-factory="connectionFactory"
destination-name="Q1">
<int:poller fixed-delay="1000" />
</int-jms:inbound-channel-adapter>
<int:service-activator input-channel="inbound" output-channel="outbound" ref="simpleMessageListener" method="onMessage" />
<int-jms:outbound-channel-adapter id="jmsOut"
channel="outbound"
connection-factory="connectionFactory"
destination-name="sampleQueue" />
<int:poller id="poller" default="true" fixed-delay="10000" />
<orcl:aq-jms-connection-factory id="connectionFactory"
data-source="dataSource"
use-local-data-source-transaction="true"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" lazy-init="false">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL" />
<property name="username" value="user" />
<property name="password" value="password" />
</bean>
</beans>
也許我使用「舊」技術(例如我已經看到了第一次遇到這種org.apache.commons.dbcp.BasicDataSource
)
不幸的是,我對Spring Integration非常感興趣,而且我第一次看到Oracle隊列(我使用Oracle工作,但從未使用過任何類型的隊列)。
如何進行將apreciated :)
編輯1 爲了解決有關AQjmsFactory問題的幾點建議需要包括aqapi.jar
是的,我已經在今天早上解決了這個問題:)我需要包括aqapi罐子。我已經更新了我的回覆,我展示瞭如何實現jms inbound-> outbound。它工作,如果你在調試模式下運行我的程序,但我不知道如何「永遠」運行它。應用程序甚至應該啓動,當一個消息來自Oracle時,應用程序應該處理它併發送郵件(我將稍後實現郵件部分,現在我只是瞭解如何使應用程序「始終運行」) – Mistre83
我在研究Spring集成的所有例子,但並不簡單:)現在我的主要問題是如何很好地構建應用程序......我在Spring上的第一次經驗(如你已經知道的:))和JMS。 – Mistre83