wso2企业集成器类筛选器获取参数

wso2企业集成器类筛选器获取参数,wso2,wso2esb,wso2ei,Wso2,Wso2esb,Wso2ei,我已经在Linux机器上安装了WSO2 EI 6.1.1。我已经为一个rest接口创建了一个传递代理,该接口同时获取GET和PUT请求。我已经设置了一个Java类中介,它应该根据请求url中包含的参数进行一些决策: http://xx.xx.xx.xx:8280/services/app/url?token=ABCD 当我从类中询问请求的上下文时,我可以看到信封和重新请求的内容 System.out.println("Context: \n " + context.getMessageStri

我已经在Linux机器上安装了WSO2 EI 6.1.1。我已经为一个rest接口创建了一个传递代理,该接口同时获取GET和PUT请求。我已经设置了一个Java类中介,它应该根据请求url中包含的参数进行一些决策:

http://xx.xx.xx.xx:8280/services/app/url?token=ABCD
当我从类中询问请求的上下文时,我可以看到信封和重新请求的内容

System.out.println("Context: \n " + context.getMessageString());

 To : /services/app/url?token=ABCD
MessageID : urn:uuid:431940fd-201e-43a3-aad1-0ca5e36297dd
Body : <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body/></soapenv:Envelope>

您可以使用get属性('uri.var.token')[1]访问令牌参数的值

使用此值有两种方法

(1) 将令牌作为参数传递给类中介。 请按照[2]中的说明获取样本

(2) 在类mediator
mediate()
方法中访问此属性,如下所示

token = synCtx.getProperty('uri.var.token');
[1]
[2]

最终结果基于双重行动:

  • 使用表达式值
    $url:token
    和名称“token”定义属性中介

  • 在类中介中调用此函数
    context.getProperty(“令牌”)


  • 我不确定我是否做对了。我已经创建了一个名为token和expresion(get property('uri.var.token')的属性,并尝试使用(context.getProperty(“token”)从类中获取值。我得到的是空值。有什么问题吗?在传递给类中介之前,您可以先记录uri.var.token以查看它是否设置正确吗?INFO-LogMediator to:/rest/path?token=pptttpptt,MessageID:urn:uuid:84909eeb-962b-4ac9-9c86-18cf07ce976c,Direction:request,token=null因为这是一个查询参数,而不是url参数,尝试将查询参数属性设置为
    [EI-Core]  INFO - LogMediator To: /services/lsrest/clients/jordipc/3/0/14?token=patata, MessageID: urn:uuid:3b08226e-4a46-474a-8d7c-c4c786e51b4c, Direction: request, token = null
    
    token = synCtx.getProperty('uri.var.token');