我有一個流騾子,它的一部分需要傳遞兩個「有效載荷」對象 - 一個有效載荷是Customer,另一個是Store。Mule Studio - 將設置變量傳遞給Java Transformer
流的當前有效負載被設置爲Store,並且正確地傳遞到我的Java變換器類中。
我已經使用變量(設置變量名稱到客戶)來保存我的客戶有效載荷,並使用我的Java Transformer的屬性字段來嘗試並通過它。
目前它將它作爲一個字符串傳遞給我的Java類 - 而不是它應該引用的變量。
我填寫的屬性字段變壓器爲: 名稱:客戶 值:#[變量:客戶] 參考:
任何幫助將非常感激。我使用的騾子Studio版本3.4
代碼摘錄如下
騾子XML
<flow name="query_dos_getStoreStatus" doc:name="query_dos_getStoreStatus">
<choice doc:name="Choice">
<when expression="#[payload.getCustomer()!=null]">
<set-variable variableName="Customer" value="#[payload]" doc:name="Save Customer"/>
<custom-transformer class="ServiceDetailsResponseToStores" doc:name="ServiceDetailsResponseStores"/>
<custom-transformer class="UpdateIdentifyCustomerResponseForStoreStatus" doc:name="Update Customer for Store status">
<spring:property name="Customer" ref="#[variable:Customer]"/>
</custom-transformer>
<remove-variable variableName="GetCustomerDetailsResponse" doc:name="Remove Customer variable"/>
</when>
</choice>
</flow>
Java類
import org.mule.transformer.AbstractTransformer;
import org.mule.transformer.types.DataTypeFactory;
public class UpdateIdentifyCustomerResponseForStoreStatus extends
AbstractTransformer{
public UpdateIdentifyCustomerResponseForStoreStatus()
{
super();
this.registerSourceType(DataTypeFactory.create(Store.class));
this.setReturnDataType(DataTypeFactory.create(IdentifyCustomerResponseEnvelope.class));
}
protected Object _customer;
public Object getCustomer()
{
return this._customer;
}
public void setCustomer(Object _customer)
{
this._customer = _customer;
}
public Object doTransform(Object payload, String outputEncoding)
{
if(payload instanceof Store && _customer instanceof IdentifyCustomerResponseEnvelope)
{
Store store = (Store)payload;
IdentifyCustomerResponseEnvelope customer = (IdentifyCustomerResponseEnvelope)_customer;
//changes to customer
return customer;
}
return this._customer;
}
}
你能分享你的xml配置嗎? – genjosanzo 2013-05-09 12:16:27
@genjosanzo是對的:一個小小的XML會更清晰,給我們一個更好的機會來幫助你,而不是對你正在做什麼進行文字描述。 – 2013-05-09 16:38:06