У меня есть тестовый веб-сервис со следующими методами и классами,
Метод
public String addPerson(Person p) {
if(p instanceof Employee) {
return "Employee";
}
return "Person";
}
Примечание. Метод аннотируется @WebMethod, @WebParam, как и веб-сервис с @Веб-сервис.
Классы
Class Person {
public String name;
}
Class Employee extends Person{
public int employeeNo;
}
Наблюдения
- Несмотря на то, что клиент отправляет сериализованный объект Employee, веб-служба всегда принимает его как объект Person.Я проверил пакет мыла на клиенте с помощью инструмента firebug, номер сотрудника присутствует в полезной нагрузке.Я также проверяю MESSAGE мыла на сервере и их я не вижу атрибута номера сотрудника.
Вопрос
- Это ожидаемое поведение?Я надеюсь, что это не так.
- Можно ли как-то справиться с этой задачей без написания пользовательских SOAP-декодеров?