jaxws 阐明 soap 响应格式
jaxws enunciate soap response format
我继承了一个包含多个网络服务的项目。我使用其中一个作为模板来创建一个新的。它奏效了,并且得到了很好的肥皂反应。但是客户希望响应格式不同。
这是当前响应的片段:
<inneoquestChannelMaps>
<channelNumber>1</channelNumber>
<eiaChannel>23</eiaChannel>
<encryptionStatus>Encrypted</encryptionStatus>
<frequency>219</frequency>
<mpegServiceId>5</mpegServiceId>
<qam>visible</qam>
<sourceId>23071</sourceId>
<sourceName>XFINITYOD</sourceName>
</inneoquestChannelMaps>
<inneoquestChannelMaps>
<channelNumber>2</channelNumber>
<eiaChannel>19</eiaChannel>
所以你看到它是从数据库查询返回的一系列记录。我想不通的是,响应中每个数据字段的名称是什么?
客户想要不同的名字,例如
<channel_number>1</channel_number>
我可以看到它们可能是由 maven enunciate 插件生成的,因为在 maven 构建之后,我创建的 java class 之一被修改为这样的注释:
@javax.xml.bind.annotation.XmlElement (
name = "inneoquestChannelMaps",
namespace = ""
)
我能看到
// Generated by Enunciate
在文件的顶部。什么提供名称 "inneoquestChannelMaps"?如何将 channelNumber 更改为 channel_number?
我在任何源文件中都找不到它,只能在目标构建文件中找到它。
好吧,我不知道它从哪里获取默认字段名称,但您可以使用 getChanelNumber 方法上方的注释将其强制为您想要的内容,如下所示:
@javax.xml.bind.annotation.XmlElement (
name = "channel_number",
namespace = ""
)
public Integer getChannelNumber() {
return channel_number;
}
我们必须处理的所有这些魔法 black-boxes 缺乏清晰的文档,这确实是 de-motivating。
我继承了一个包含多个网络服务的项目。我使用其中一个作为模板来创建一个新的。它奏效了,并且得到了很好的肥皂反应。但是客户希望响应格式不同。 这是当前响应的片段:
<inneoquestChannelMaps>
<channelNumber>1</channelNumber>
<eiaChannel>23</eiaChannel>
<encryptionStatus>Encrypted</encryptionStatus>
<frequency>219</frequency>
<mpegServiceId>5</mpegServiceId>
<qam>visible</qam>
<sourceId>23071</sourceId>
<sourceName>XFINITYOD</sourceName>
</inneoquestChannelMaps>
<inneoquestChannelMaps>
<channelNumber>2</channelNumber>
<eiaChannel>19</eiaChannel>
所以你看到它是从数据库查询返回的一系列记录。我想不通的是,响应中每个数据字段的名称是什么?
客户想要不同的名字,例如
<channel_number>1</channel_number>
我可以看到它们可能是由 maven enunciate 插件生成的,因为在 maven 构建之后,我创建的 java class 之一被修改为这样的注释:
@javax.xml.bind.annotation.XmlElement (
name = "inneoquestChannelMaps",
namespace = ""
)
我能看到
// Generated by Enunciate
在文件的顶部。什么提供名称 "inneoquestChannelMaps"?如何将 channelNumber 更改为 channel_number?
我在任何源文件中都找不到它,只能在目标构建文件中找到它。
好吧,我不知道它从哪里获取默认字段名称,但您可以使用 getChanelNumber 方法上方的注释将其强制为您想要的内容,如下所示:
@javax.xml.bind.annotation.XmlElement (
name = "channel_number",
namespace = ""
)
public Integer getChannelNumber() {
return channel_number;
}
我们必须处理的所有这些魔法 black-boxes 缺乏清晰的文档,这确实是 de-motivating。