2014-12-03 113 views
1

我想知道解決這種集成化方案的方式:Spring集成:JDBC單查詢Web服務

  • 執行不同的查詢選擇從數據庫中X元素。我是 尋找一個入站適配器沒有池,因爲它只是執行一次查詢所需的 。雖然,查詢結果 只會生成一個輸出。
  • 使用此數據構建S​​OAP請求(通用Web服務)
  • 將此SOAP請求發送到Web服務並等待異步響應。

但是,還有必要將所有此方案都部署在Tomcat服務器上的WAR文件中。我從Spring MVC + Spring集成框架部署應用程序,但是我不會有任何控制器。在Tomcat上加載上下文時是否可以執行該應用程序?

我的下一個技術方面的工作:

  • Spring集成
  • Spring MVC的一戰部署
  • 調度(石英或@Scheduled)
  • 春WS

問候

回答

0

既然你說你更願意select上的應用程序啓動和只有一次,你可以使用:

<int-event:inbound-channel-adapter channel="jdbcChannel" 
     event-types="org.springframework.context.event.ContextRefreshedEvent" 
     payload-expression="''"/> 

<int-jdbc:outbound-gateway query="SELECT * FROM ..."/>

等方面WebService的。

UPDATE

既然你說你周圍Anotation配置,可以考慮使用Spring Integration Java DSL

@Configuration配置<int-event:inbound-channel-adapter>你應該這樣做:

@Bean 
    @SuppressWarnings("unchecked") 
    public MessageProducer ApplicationEventListeningMessageProducer() { 
     ApplicationEventListeningMessageProducer producer = new ApplicationEventListeningMessageProducer(); 
     producer.setEventTypes(ContextRefreshedEvent.class); 
     producer.setPayloadExpression("''"); 
     producer.setOutputChannel(jdbcChannel()); 
     return producer; 
    } 

ContextRefreshedEvent信息,你可以從它的JavaDoc或Spring Framework Manual得到。

+0

謝謝阿爾喬姆。出站網關似乎是一個很好的解決方案。由於我只使用帶註釋的配置工作,你能指出我在哪裏可以找到關於ContextRefreshedEvent的更多信息? – crm86 2014-12-03 11:24:09

+1

爲註釋配置變體添加了一個樣本。 – 2014-12-03 11:54:43

+0

有什麼關於:帶註釋。我試圖創建一個JdbcOutboundGateway,但我得到'沒有訂戶'異常 – crm86 2014-12-03 18:46:28