Citrus Framework - 无法解析 JSON 数据字典
Citrus Framework - Unable to parse JSON data dictionary
我正在尝试 Citrus 框架参考文档中的 JSON data dictionaries 部分,但我遇到了这个错误。
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。我正在使用 IntelliJ IDEA 和 Maven。
您发送的是空消息负载,这就是 JSON解析器 运行 出错的原因。不要将数据字典应用于空消息负载。在发送操作发生之前,数据字典只能覆盖给定的 JSON 个消息元素。
我正在尝试 Citrus 框架参考文档中的 JSON data dictionaries 部分,但我遇到了这个错误。
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。我正在使用 IntelliJ IDEA 和 Maven。
您发送的是空消息负载,这就是 JSON解析器 运行 出错的原因。不要将数据字典应用于空消息负载。在发送操作发生之前,数据字典只能覆盖给定的 JSON 个消息元素。