在Java中使用SOAP API

时间:2015-10-06 16:39:57

标签: java spring web-services soap

我一直在搜索如何使用Java中的C#/ ASP.NET构建的SOAP API。我目前正在为我的项目使用Spring / Spring Web,我希望在Spring-WS中使用SOAP API,但没有运气。

信封生成错误,当我发送请求时,它只是说明 " 500内部服务器错误"

它具有SOAP-ENV:Envelope的顶部的命名空间是不正确的,当在SoapUI中使用WSDL时,数据显示为soap:Envelope所以我不确定这是否是一个问题,如何将它编组到一个XML字符串。

我发送的信息:

    TestRequest test = WS_CLIENT_FACTORY.createTestRequest();
    test.setData(1);

    JAXBElement<TestRequest> req = WS_CLIENT_FACTORY.createTestRequest(test);

    getWebServiceTemplate().marshalSendAndReceive(req);

这会发送请求,但输出实际发送的XML数据会被错误地放在一起,服务器似乎不喜欢它。

我不确定C#/ ASP SOAP API服务器的处理方式与Java的处理方式有何不同?如果有人能就此启发我,请帮助我!

1 个答案:

答案 0 :(得分:0)

我回到使用基本的JAX-WS作为Java的一部分并使用&#34; wsimport&#34;工具。事实证明,当我之前完成它时,它丢失了SOAP Headers,因此您实际上可以使用以下命令中包含的附加头生成请求。

wsimport -keep -Xnocompile -XadditionalHeaders -extension

虽然这不是使用Spring的消费SOAP API实现,但似乎工作得更好。