http - 骡子 - 找不到变量

标签 http soap get mule mule-studio

我正在尝试从 GET http 请求中检索一些变量,例如

http://localhost:8088/?id=xxx&type=yyyy

使用这个流程

<flow name="SOAPWebService" >

    <http:inbound-endpoint address="http://localhost:8088/"   exchange-pattern="request-response">          
    </http:inbound-endpoint>

    <set-variable value="#[message.inboundProperties['id']]" variableName="paramId"></set-variable>
    <set-variable value="#[message.inboundProperties['type']]" variableName="paramType"></set-variable>

    <component class="com.example.components.SampleComponent" ></component>

    <mule-xml:xslt-transformer
        maxIdleTransformers="2" maxActiveTransformers="5"
        xsl-file="C:\WorkSpace\MyProject\src\main\resources\xslt\PrepareRequestXML.xsl">
        <mule-xml:context-property key="paramId"
            value="#[flowVars['paramId']]" />
        <mule-xml:context-property key="paramType"
            value="#[flowVars['paramType']]" />
    </mule-xml:xslt-transformer>

    <cxf:proxy-client payload="body"
        enableMuleSoapHeaders="true">           
    </cxf:proxy-client>
    <http:outbound-endpoint exchange-pattern="request-response"
        address="http://localhost:8080/ClientsDB/douane" doc:name="HTTP">
    </http:outbound-endpoint>   

    <byte-array-to-string-transformer   doc:name="Byte Array to String" />      
    <file:outbound-endpoint ....... .. />
</flow>  

这是xslt样式表

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:wsd="http://wsdouane/">
    <xsl:output method="xml" indent="yes" />
    <xsl:param name="paramType"></xsl:param>
    <xsl:param name="paramId"></xsl:param>

    <xsl:template match="*" >
       <xsl:element name="wsd:find" namespace="http://wsdouane/">
        <xsl:element name="entity">
         <xsl:element name="id">
           <xsl:value-of select="$paramId"/>
         </xsl:element>
         <xsl:element name="type">
            <xsl:value-of select="$paramType"/>
         </xsl:element> 
       </xsl:element>        
      </xsl:element>
    </xsl:template>

    <xsl:template match="text()|processing-instruction()|comment()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" />
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>    

但是当我运行流程时,出现以下错误:

INFO  2013-05-17 10:10:10,839 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.transformer.simple.AddFlowVariableTransformer: Variable with key "paramId", not found on message using "#[message.inboundProperties['id']]". Since the value was marked optional, nothing was set on the message for this variable
INFO  2013-05-17 10:10:10,841 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.transformer.simple.AddFlowVariableTransformer: Variable with key "paramType", not found on message using "#[message.inboundProperties['type']]". Since the value was marked optional, nothing was set on the message for this variable
INFO  2013-05-17 10:10:10,895 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.transport.service.DefaultTransportServiceDescriptor: Loading default outbound transformer: org.mule.transport.http.transformers.ObjectToHttpClientMethodRequest
INFO  2013-05-17 10:10:10,895 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.transport.service.DefaultTransportServiceDescriptor: Loading default response transformer: org.mule.transport.http.transformers.MuleMessageToHttpResponse
INFO  2013-05-17 10:10:10,895 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.transport.service.DefaultTransportServiceDescriptor: Loading default outbound transformer: org.mule.transport.http.transformers.ObjectToHttpClientMethodRequest
INFO  2013-05-17 10:10:10,895 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.lifecycle.AbstractLifecycleManager: Initialising: 'connector.http.mule.default.dispatcher.28622115'. Object is: HttpClientMessageDispatcher
INFO  2013-05-17 10:10:10,896 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.lifecycle.AbstractLifecycleManager: Starting: 'connector.http.mule.default.dispatcher.28622115'. Object is: HttpClientMessageDispatcher
INFO  2013-05-17 10:10:10,921 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.lifecycle.AbstractLifecycleManager: Initialising: 'connector.file.mule.default.dispatcher.27894808'. Object is: FileMessageDispatcher
INFO  2013-05-17 10:10:10,921 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.lifecycle.AbstractLifecycleManager: Starting: 'connector.file.mule.default.dispatcher.27894808'. Object is: FileMessageDispatcher
INFO  2013-05-17 10:10:10,923 [[mediation_mod].connector.http.mule.default.receiver.04] org.mule.transport.file.FileConnector: Writing file to: C:\MuleStudio\SandBox\output\17-05-13_1368778210922.xml

它给出一个 null 而不是通过 http 传递的值。

有什么想法吗??

最佳答案

使用以下 http 入站。

<http:inbound-endpoint address="http://localhost:8088"   exchange-pattern="request-response">          
</http:inbound-endpoint>

这应该符合您的要求

http://localhost:8088/?id=xxx&type=yyyy

关于http - 骡子 - 找不到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604589/

相关文章:

java - 在使请求转到 Java 中的其他地方之前向请求添加 post 参数

matlab - 返回特定属性的默认 get 方法 - MATLAB

http - XMLHttpRequest 和常规 HTTP 请求之间的数据包级区别是什么?

php - 在 php 中将 float 组作为 HTTP POST 请求发送

php - 在同一个 PHP SOAP 服务器中处理对多个类的请求

java - 在java中使用Web服务时如何触发处理程序类

ios - 我只从“获取请求”中获取一个对象。如何全部找回?

api - 如何将动态值传递给 GET API 请求?

node.js - 使用 Node js 进行 REST 调用 : "Error: connect ETIMEDOUT" and "http code 0"

.net - 控制台应用程序 (.NET) 中的 SOAP 请求超时