jaxws провозглашает формат ответа мыла
Я унаследовал проект, который содержит несколько веб-сервисов. Я использовал один из них в качестве шаблона для создания нового. Это сработало, и я получаю хороший отклик на мыло. Но клиент хочет, чтобы формат ответа был другим. Вот фрагмент текущего ответа:
<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-классов изменяется с помощью аннотаций, подобных этой:
@javax.xml.bind.annotation.XmlElement (
name = "inneoquestChannelMaps",
namespace = ""
)
и я могу видеть
// Generated by Enunciate
в верхней части файла. Что дает название "inneoquestChannelMaps"? Как изменить channelNumber на channel_number?
Я не могу найти его ни в одном из исходных файлов, только в целевых файлах сборки.
1 ответ
Ну, я понятия не имею, где он получает имена полей по умолчанию, но вы можете принудительно указать, что вы хотите, используя аннотацию над методом getChanelNumber, например так:
@javax.xml.bind.annotation.XmlElement (
name = "channel_number",
namespace = ""
)
public Integer getChannelNumber() {
return channel_number;
}
Отсутствие четкой документации для всех этих волшебных черных ящиков, с которыми нам приходится иметь дело, действительно демотивирует.