更改Java Soap服务结果元素名称

时间:2019-07-16 10:06:44

标签: java eclipse web-services soap

我正在尝试编写简单的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>

到我的custome元素:

<QueryResult>Hello World!</QueryResult>

1 个答案:

答案 0 :(得分:0)

您不应该知道最终合同的名称,这无关紧要。任何客户端都应使用任何“ wsdl进行编码” (代码生成)工具。

您和您的服务客户端不应直接使用XML层(最通用的SOAP协议)。

如果您是Web服务所有者,则可以将其定义为“代码优先” (您定义类和方法,平台将为您更新WSDL定义)。

如果您不是所有者,则应该索要合同(WSDL)并使用任何代码生成器( wsimport 是典型的代码生成器)。

如果您尝试为某种XML格式定义Web服务,并且具有XSD定义或其他内容,请勿尝试创建SOAP服务,而是请处理该层(XML数据) (直接使用适当的工具,例如使用 Java JAXB 的标准规范)。

无论如何,如果您想更改该单词,可以有一些选择:

  1. 亲自编写WSDL(手动或使用某些工具),然后创建Web服务(例如,使用 wsimport )。
  2. 搜索您的平台是否能够做到这一点(jaxws并非没有被黑客入侵)