【发布时间】:2015-08-22 05:04:42
【问题描述】:
我正在尝试确定当我在 Spring Integration 存储过程出站网关中的存储过程参数中使用我的 bean 引用时无法识别它的原因。我已经能够在两者之间放置一个服务激活器,并以 bean 作为有效负载创建一条新消息,它工作正常。但是为什么我不能使用实际的 bean?
这是一段sn-p代码:
<bean id="updateDataContentsMapper" class="org.companyname.connector.support.UpdateDataContentsMapper" depends-on="updateDataContents">
<property name="updateDataContents" ref="updateDataContents"/>
</bean>
<bean id="updateDataContents" class="org.companyname.connector.model.UpdateDataContents"/>
<int:channel id="update-sp-channel"/>
<int:channel id="operation-completion-channel"/>
<int-jdbc:stored-proc-outbound-gateway
id="01-update-data-contents-sp-gateway"
request-channel="update-sp-channel"
reply-channel="operation-completion-channel"
data-source="dataSource"
stored-procedure-name="usp_UpdateDataContents" >
<int-jdbc:sql-parameter-definition name="@vKeyValue"
direction="IN"
type="VARCHAR"
scale="100"/>
<int-jdbc:sql-parameter-definition name="@nSeqNum"
direction="IN"
type="NUMERIC"
scale="20"/>
<int-jdbc:sql-parameter-definition name="@vMessageLog"
direction="IN"
type="VARCHAR"
scale="100"/>
<int-jdbc:sql-parameter-definition name="@vRC"
direction="OUT"
type="VARCHAR"
scale="30"/>
<int-jdbc:parameter name="@vKeyValue" value="#{updateDataContents.vKeyValue}"/>
<int-jdbc:parameter name="@nSeqNum" value="#{updateDataContents.nSeqNum}"/>
<int-jdbc:parameter name="@vMessageLog" value="#{updateDataContents.vMessageLog}"/>
<int-jdbc:parameter name="@vRC" type="java.lang.String" value="new java.lang.String"/>
<int-jdbc:returning-resultset name="updateDataContents" row-mapper="org.companyname.connector.support.UpdateDataContentsMapper" />
</int-jdbc:stored-proc-outbound-gateway>
我发现这很难确定我需要什么。
<int-jdbc:parameter name="@vKeyValue" value="#{updateDataContents.vKeyValue}"/>
或
<int-jdbc:parameter name="@vKeyValue" value="#{updateDataContents.getVKeyValue()}"/>
或
<int-jdbc:parameter name="@vKeyValue" value="updateDataContents.getVKeyValue()"/>
我知道如果我使用消息有效负载,这可行:
<int-jdbc:parameter name="@vKeyValue" expression="payload.getVKeyValue()"/>
如果有人有链接或能给我一些见解,我将不胜感激。我认为我的语法正确。它一定是与实际集成组件有关的东西,或者是我缺少的东西。
谢谢,
戴夫
【问题讨论】: