2015-10-23 71 views
0

我尝试了柑橘框架参考文档中的JSON data dictionaries部分,并且出现此错误。柑橘框架 - 无法解析JSON数据字典

10:35:33,430 WARN ctJsonDataDictionary| Data dictionary unable to parse JSON object 
net.minidev.json.parser.ParseException: Unexpected token at position 0. 
    at net.minidev.json.parser.JSONParserBase.readFirst(JSONParserBase.java:369) 
    at net.minidev.json.parser.JSONParserBase.parse(JSONParserBase.java:154) 
    at net.minidev.json.parser.JSONParserString.parse(JSONParserString.java:58) 
    at net.minidev.json.parser.JSONParserString.parse(JSONParserString.java:39) 
    at net.minidev.json.parser.JSONParser.parse(JSONParser.java:253) 
    ... 

我的citrus-context.xml已配置端点和JSON数据字典。

<citrus-http:client id="sampleEndpoint" 
        request-url="localhost:8080/test" 
        request-method="POST" 
        content-type="application/json" 
        timeout="60000" /> 

<citrus:json-data-dictionary id="samplePayload"> 
    <citrus:mappings> 
    <citrus:mapping path="TestMessage.MessageId" value="messageId"/> 
    <citrus:mapping path="TestMessage.CorrelationId" value="correlationId"/> 
    <citrus:mapping path="TestMessage.User" value="Christoph"/> 
    <citrus:mapping path="TestMessage.TimeStamp" value="citrus:currentDate()"/> 
    </citrus:mappings> 
</citrus:json-data-dictionary> 

而我在XML中的测试用例如下所示。

<testcase name="sampleTestCase"> 
     <meta-info> 
      <author>Varun Mulloli</author> 
      <creationdate>2015-10-23</creationdate> 
      <status>DRAFT</status> 
      <last-updated-by>Varun Mulloli</last-updated-by> 
      <last-updated-on>2015-10-23T10:35:32</last-updated-on> 
     </meta-info> 

     <description>TODO: Description</description> 

     <actions> 
      <send endpoint="sampleEndpoint"> 
       <message data-dictionary="samplePayload" type="json"> 
        <payload/> 
       </message> 
      </send> 
     </actions> 
</testcase> 

我能够发送有效载荷和接收响应,而无需使用数据字典。我在这里错过了什么?

P.S.我在Maven中使用IntelliJ IDEA。

回答

1

您正在发送一个空的消息负载,这就是JSONParser运行错误的原因。不要将数据字典应用于空消息有效负载。数据字典只能在发送操作发生之前覆盖给定的JSON消息元素。