ArrayOfXXX класс из входного параметра мыла типа массива - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть метод с входным параметром как массив.Когда я генерирую заглушку из нее, создается тип списка.

Но я хочу знать, как создать класс-оболочку для типа массива, например, для класса Apple, он должен создать ArrayOfApple.

Нужно ли вносить какие-либо изменения в класс или использовать какой-либо конкретный плагин?

Примечание: я использую JAXWS с Apache CXF реализацией

Ниже приведен пример кода:

EmployeeService.java:

@WebService(endpointInterface="com.test.EmployeeService")
@SOAPBinding(style=Style.DOCUMENT)
public class EmployeeService {

    public String updateEmpRoles(@WebParam(name="EmpRoles")EmpRole[] empRoles) {
        return "SUCCESS";
    }
}

EmpRole.java:

@XmlType(name="EmpRole")
public class EmpRole {
    private String empRole;

    public String getEmpRole() {
        return empRole;
    }

    public void setEmpRole(String empRole) {
        this.empRole = empRole;
    }
}

После публикации генерируется wsdl, как показано ниже -

enter image description here

Но я ожидаю, что WSDL должен создать ArrayOfEmpRole и обернуть List<EmpRole>.

Пожалуйста, помогите

Короче - яхочу что-то, чего не хочет Бьорн в ссылке ниже.(В его случае это автоматически создает ArrayOfXXX, это то, что мне нужно) - Массивы в методе SOAP Параметры, сгенерированные с помощью JAX-WS?

1 Ответ

0 голосов
/ 03 декабря 2018

Я бы переключился с кода сначала на контракт сначала, что означает начать с WSDL и сгенерировать заглушку, используя из нее wsdl2java.Таким образом, вы можете убедиться, что WSDL выглядит так, как вы хотите.

Если вы хотите придерживаться текущего подхода, возможно, самый простой способ получить оболочку - это ввести другой класс.

...