mule:如何在Web Service使用者中维护会话

时间:2017-11-13 21:42:15

标签: session mule netsuite

我正在尝试使用在登录调用期间返回的相同JSESSIONID在NetSuite中添加记录。我从cookie头中获取了JESSIONID值,并将其设置为JSESSIONID的出站属性。然后我正在使用Web Service Consumer进行添加操作。但我收到的错误是无效的会话ID。 关于如何在后续NetSuite调用中使用相同会话ID的任何想法。

<set-property propertyName="JSESSIONID" value="#[flowVars.sessionID]" doc:name="Property"/>
        <set-payload value=" &lt;urn:add xmlns:urn=&quot;urn:messages_2017_1.platform.webservices.netsuite.com&quot; xmlns:urn1=&quot;urn:core_2017_1.platform.webservices.netsuite.com&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:list=&quot;urn:relationships_2017_1.lists.webservices.netsuite.com&quot;&gt;
         &lt;urn:record xsi:type=&quot;list:Customer&quot;&gt;
                &lt;list:companyName&gt;ABC&lt;/list:companyName&gt;
                &lt;list:subsidiary internalId=&quot;1&quot;/&gt;
         &lt;/urn:record&gt;
 &lt;/urn:add&gt;" doc:name="Set Payload"/>
        <ws:consumer config-ref="Web_Service_Consumer" operation="add" doc:name="Web Service Consumer"/>

2 个答案:

答案 0 :(得分:0)

要保持或维护应用程序状态/会话,您可以利用Mule中的Object store。 您可以将特定用户的JSESSIONID / JSESSIONID映射存储在对象库中,并在后续请求中使用它。 会话丢失/超时后删除它们。 尝试探索以下链接

Managing Application Data Storage with Object Stores

Object Store Connector

答案 1 :(得分:0)

您可以在某个标头中添加消息或使用会话ID,因为在后续的HTTP或Web服务调用之后它可能会丢失。