我们正在尝试访问java arraylist并从代理服务上的每个消息中检索它。可以将此arraylist加载到wso2注册表中并从代理服务检索(也根据需要将值添加到arraylist中)。如果是这样,请指导,因为我是wso2 esb的新手。我特别在wso2 esb寻找解决方案。 为了使事情更清楚
好吧,我们没有做任何具体的事情,我们正在尝试找到不同的方法来满足要求。在arraylist中有一组值,我们需要从wso2 esb(最好的注册表)存储和访问它。对于通过JMS代理进入的每条消息,我们需要从arraylist中检索并删除该字段,并将其用于形成副本消息。我们在网上对它进行了研究,发现我们可以向注册表添加资源。是否可以将java集合添加到注册表中。
答案 0 :(得分:0)
由于您没有提供任何具体方法,我们只能告诉您实施方法。
wso2注册表只能以xml的形式保存ur值,其中每个元素都包含要查找的特定数据。
WSO2提供了一种编写自己的类中介的方法。将所有ur值存储在属性xml中,然后您可以使用property mediator访问它们。如下。
<property xmlns:sample="example.com"
name="externalProperties"
expression="get-Property('registry', 'conf:myResources/properties.xml')"
scope="default"
type="OM"/>
<property xmlns:sample="example.com"
name="sampleElement"
expression="$ctx:externalProperty//element1"
scope="default"
type="STRING"/>
[NB:ur属性必须包含名为element1的标记,属性文件名应为externalProperties] 现在在类中介内部使用属性externalProperties作为争论
public class ManipulateValues implements Mediator {
private static final Log log = LogFactory.getLog(ManipulateValues .class);
private OMElement externalProperties;
public DiscountQuoteMediator(Omelement elem){
this.externalProperties = elem;
}
public boolean mediate(MessageContext mc) {
//manipulate the externalproperties variable
return true;
}
}
获取消息上下文在mediate()方法中使用mc arguement。