Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Jersey中发布XML字符串_Java_Junit_Jaxb_Jersey - Fatal编程技术网

Java 在Jersey中发布XML字符串

Java 在Jersey中发布XML字符串,java,junit,jaxb,jersey,Java,Junit,Jaxb,Jersey,我想发送POST请求,但我想在POST中添加XML作为字符串,而不是添加JAXBObject。原因是我正在编写一些单元测试。对于JAXBOObject,我只能通过XSD在jaxb生成的对象中提供有效值,即有效的枚举类型 现在我想通过为输入类型输入一些随机值来测试我的WS,这样我就可以测试它了 如果我这样做 ClientResponse clientResponse = service.post(ClientResponse.class, jaxbElement); 它工作正常。但是我不想发邮件

我想发送POST请求,但我想在POST中添加XML作为字符串,而不是添加JAXBObject。原因是我正在编写一些单元测试。对于JAXBOObject,我只能通过XSD在jaxb生成的对象中提供有效值,即有效的枚举类型

现在我想通过为输入类型输入一些随机值来测试我的WS,这样我就可以测试它了

如果我这样做

ClientResponse clientResponse = service.post(ClientResponse.class, jaxbElement);

它工作正常。但是我不想发邮件。。当您从测试用例调用以下内容时,我将发送一个自定义XML,比如

ClientResponse response = builder.
    accept(MediaType.APPLICATION_JSON).
    type(MediaType.APPLICATION_XML).
    entity(entityObj).
    post(ClientResponse.class);
你可以用EntityObj发送任何东西


您也可以尝试

您是否希望测试当前代码无法实现的事情?它可能会发生。XSD提供了一组输入状态。订单状态只能是发货/取消。。。但这是一个xml,用户会将它发送到客户端,因此,他可以做一些拼写错误或添加一些随机的OrderStatus,比如SHIPPED或PENDING等…但是JAXB不应该抛出异常,并且您可以有效地重写JAXB代码中已经存在的测试。假设XML只允许OrderStatus中的2个值。。i、 e.已装运/待处理。并假设客户端发送一个OrderStatus为Confirm的xml。。在本例中,JAXB在该特定变量中具有null,我的应用程序将相应地运行。这就是JAXB将要做的,它不会通过异常。对于我的测试用例,我想发送原始xml,而不是JAXB对象,这样我就可以测试这个场景了。请参阅我上面的评论,您可以将entityObj作为包含原始xml的字符串。如此有效的实体。。。。。。如果您想在您的请求上使用更多的控制,请使用SOAPUI,它还支持REST。