我一直在搜索如何使用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的处理方式有何不同?如果有人能就此启发我,请帮助我!
答案 0 :(得分:0)
我回到使用基本的JAX-WS作为Java的一部分并使用&#34; wsimport&#34;工具。事实证明,当我之前完成它时,它丢失了SOAP Headers,因此您实际上可以使用以下命令中包含的附加头生成请求。
wsimport -keep -Xnocompile -XadditionalHeaders -extension
虽然这不是使用Spring的消费SOAP API实现,但似乎工作得更好。