当前位置: 首页 > 知识库问答 >
问题:

如何在mule中设置查询参数以服务endpoint请求

夹谷英奕
2023-03-14

下面是mule flow xml文件和自定义请求转换器

<http:connector name="ClientOutboundHttpConnector">
       <service-overrides sessionHandler="org.mule.session.NullSessionHandler"/>
    </http:connector>
   
    
<!--  Below is the flow for sample rest endpoint -->

<custom-transformer
        name="SampleRequestTransformer"
        class="com.example.SampleRequestTrasformer" />
        
        <custom-transformer
        name="SampleResponseTransformer"
        class="com.example.SampleResponseTrasformer" />
    
    <flow name="sampleRESTFlow" doc:name="sample rest Flow">
                     
        <inbound-endpoint address="servlet://getDetails" exchange-pattern="request-response" connector-ref="muleCXFServletConnector" 
                transformer-refs="SampleRequestTransformer"  responseTimeout="600000" />
                
        
        
        <http:outbound-endpoint
            address="http://xyzhost:port/greet123"
            connector-ref="ClientOutboundHttpConnector"
            exchange-pattern="request-response"
            contentType="application/x-www-form-urlencoded"
            keep-alive="true"
            responseTimeout="360000"
            responseTransformer-refs="InputStreamToStringTransformer"/>

        <logger
            message="MappingServer Response after reading stream=#[payload]"
            level="INFO" />

        <transformer ref="SampleResponseTransformer" />

        <transformer ref="clientErrorResponseTransformer" />

        

    </flow>

下面是自定义请求转换器的代码


    @Override
    public Object transformMessage(MuleMessage message, String arg1)
            throws TransformerException {
        // TODO Auto-generated method stub
        Object payload = message.getPayload();
        Map<String,String> queryParams= new HashMap<String,String>();
        queryParams.put("salary", "400000");
        queryParams.put("age", "32");
        
        
        
    
        message.setProperty("Content-Type", "application/x-www-form-urlencoded", PropertyScope.OUTBOUND);
        message.setProperty("mimeType","application/x-www-form-urlencoded",PropertyScope.OUTBOUND);
        message.setProperty("http.method", "POST", PropertyScope.OUTBOUND);
        message.setProperty("http.query.params",queryParams, PropertyScope.OUTBOUND);
        
        
        return message;
    }

}```
    

共有1个答案

微生德运
2023-03-14

第一,http错误400表示资源不可用。但是服务器和端口都没问题。因此,/greet123不可用。问题不是你的代码--问题是没有人在听它。尝试常规浏览器或邮递员-结果将是相同的-400错误。

第二骡子3是不推荐的。据我所知,3.8今年将失去支持。3.3是很久以前的事了。骡子4是当前版本,没有办法骡子3可以转移到骡子4。

https://simpleflatservice.com/mule4/mule3tomule4transformation.html

 类似资料:
  • 我想使搜索页面后,我点击它的按钮将被重定向到另一个页面。这一页将是这样的 还有我的路由器看起来像这样 问题是如何在Vue中获取目标页面中的查询值。JS3?这个答案仍然让我困惑,因为没有使用CompositionAPI,也没有在VueJS3中使用

  • 问题内容: 嗨,我有一个命名查询 我想这样设置限制: 但这在服务器启动时显示错误。我正在使用以下代码在DAO类中调用查询: 需要设置开始和结束参数。请帮忙。 问题答案: 正如@DataNucleus所说,LIMIT在JPQL中不是有效的关键字。这不是指定要返回多少行的方法。这是您的操作方式: 这将是调用命名查询的代码:

  • 问题内容: 我正在尝试在bigquery的查询中使用命名参数。 我懂了 有什么办法可以在biquery上设置命名参数? 问题答案: BigQuery仅通过使用标准SQL的API而非Web UI支持命名参数。您可以在“运行参数化查询”部分中了解有关它们的信息。如果您对查询参数的Web UI支持感兴趣,可以在问题跟踪器上为功能请求加注星标。

  • 问题内容: 我有一个实体: 我在说。这是我的DAO方法: 日志说: 请求处理失败;嵌套的异常是java.lang.NullPointerException 并将指针放在这一行: 有时必须为null。那么如何设置null? 问题答案: 如果您查看Query类的文档,setInteger()方法, 它以名称和 原始类型int 作为参数。 当您在 自动装箱 期间传递值为null的包装器类型Integer

  • 问题内容: 这是我的PostgreSQL函数: 它有一个参数,我想通过JPQL 将Java传递给它: 上面的代码失败,但例外: 所以我不确定如何从EclipseLink调用我的函数。 问题答案: 通过将String []类型的Java数组传递给您进行测试,以进行测试。似乎PgJDBC不接受Java数组作为带有或不带有参数的参数。 合规 JDBC规范 16.5“数组对象” 建议JDBC 部分存在,因

  • 问题内容: 假设上一课,您如何找到具有特定电子邮件地址的? 这样做简单吗,还是有适当的方法? 问题答案: 那并没那么简单。JPQL 为此提供了运营商: “旧”方式(类似于SQL)是: