0

我正在尝试Citrus 框架参考文档中的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>

我能够在不使用数据字典的情况下发送有效负载并接收响应。我在这里想念什么?

PS 我正在使用带有 Maven 的 IntelliJ IDEA。

4

1 回答 1

1

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

于 2016-03-03T10:45:07.040 回答