2

我正在尝试模拟 WS。我在 WS 中创建了以下方法

@POST
@Consumes (MediaType.APPLICATION_XML)
public void dataIn (InputStream inXml){
    System.out.println ("data received");

    BufferedReader br = new BufferedReader(new InputStreamReader(inXml));
    String xml = null;
    try {
        while ((xml = br.readLine())!=null){
            System.out.println(xml);
        }
    } catch (IOException e) {
        System.out.println ("ouch");
    }

}

我正在通过此代码使用我的 Java 客户端发送 XML

    String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><rootElem name=\"xml_type\"><info>this_is_test</info></rootElem>";
    service.accept(MediaType.APPLICATION_XML).post(xml);

但我得到了这个例外

Exception in thread "main" com.sun.jersey.api.client.UniformInterfaceException: POST http://localhost:8080/project/ws/services/1.0/savedata returned a response status of 415

我很确定我没有正确发送我的 XML。在做了几个谷歌搜索之后,我无法弄清楚我在做什么错。由于我在网上找到的大多数教程/帮助都是使用 OBJ > JAXB > XML > JAXB > OBJ 从客户端到服务器的翻译。我想发送原始 xml 并读取原始 xml。有人可以建议我在这里做错了什么吗?


我不确定回答自己的问题是否会导致 -ve 声誉。但是在偶然发现并弄清楚事情之后,我使用 Apache httpclient 发送请求并且它工作正常。我会要求结束这个问题。

DefaultHttpClient dhc = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("http://localhost:8080/project/ws/services/1.0/savedata");
StringEntity se = new StringEntity("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><rootElem name=\"xml_type\"><info>this_is_test</info></rootElem>");
se.setContentType("application/xml");
postRequest.setEntity(se);
HttpResponse response = dhc.execute(postRequest);
System.out.println (response.getStatusLine().getStatusCode());
4

0 回答 0