我正在尝试编写简单的 Java Soap Web 服务,为此目的下载 Eclipse 并创建动态 Web 应用程序,在该项目中创建此类和方法:
package test;
public class Sayam{
public String helloworld(){
return "Hello world!";
}
}
在该类上右键单击并选择 Web 服务并生成 Web 服务,一切正常,Web 服务返回以下结果:
<soapenv:Envelope>
<soapnv:Body>
<helloWorldResponse>
<helloWorldReturn>Hello World!</helloWorldReturn>
</helloWorldResponse>
</soapenv:Envelope>
</soapnv:Body>
我想更改这一行:
<helloWorldReturn>Hello World!</helloWorldReturn>
到我的客户元素:
<QueryResult>Hello World!</QueryResult>
最佳答案
你不应该知道最终契约(Contract)的名称,没关系。任何客户端都应该使用任何“wsdl to code”(codegen)工具。
您和您的服务客户端不应直接处理 XML 层(最通用的 SOAP 协议(protocol))。
如果您是 Web 服务所有者,则可以将其定义为“代码优先”(您定义类和方法,平台为您更新 WSDL 定义)。
如果您不是所有者,您应该索要契约(Contract)(WSDL)并使用任何代码生成器(wsimport 是典型的代码生成器)。
如果您尝试为某些 XML 格式定义 Web 服务,并且您有 XSD 定义或其他内容,不要尝试创建 SOAP 服务,而是处理该层(XML 数据)直接(当然使用适当的工具,例如 Java JAXB 的标准规范)。
如果您想更改该词,您有一些选择:
- 自己编写 WSDL(手动或使用某种工具),然后创建 Web 服务(例如使用 wsimport)。
- 搜索您的平台是否能够做到这一点(jaxws 并非没有黑客攻击)
关于java - 更改 Java Soap 服务结果元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054829/