Типы данных параметров метода JAXWS не изменятся - PullRequest
0 голосов
/ 04 февраля 2020

Я опубликовал две конечные точки

        Endpoint ep = Endpoint.create(new HotelWS());
        ep.publish("http://127.0.0.1:1000/ra/hotel");

        Endpoint ep1 = Endpoint.create(new RoomTypeWS());
        ep1.publish("http://127.0.0.1:1000/ra/roomtype");

это метод в классе RoomTypeWS

@WebMethod
public boolean add(RoomType roomType) {
    return super.$add(roomType);
}

и этот метод в классе HotelWS

@WebMethod
public boolean add(Hotel obj) {
    return super.$add(obj);
}

, но В клиентском приложении оба параметра имеют тип Hotel. Но если я опубликую sh только одну конечную точку, она будет работать нормально.

Вот как методы RoomTypeWS.add и HotelWS.add генерируются в клиентском приложении

public interface RoomTypeWS {
    /**
     * 
     * @param arg0
     * @return
     *     returns boolean
     */
    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "add", targetNamespace = "http://services/", className = "net.codegen.reservationagentrestservice.soap_services.Add")
    @ResponseWrapper(localName = "addResponse", targetNamespace = "http://services/", className = "net.codegen.reservationagentrestservice.soap_services.AddResponse")
    @Action(input = "http://services/RoomTypeWS/addRequest", output = "http://services/RoomTypeWS/addResponse")
    public boolean add(
        @WebParam(name = "arg0", targetNamespace = "")
        Hotel arg0);

}


public interface HotelWS {


    /**
     * 
     * @param arg0
     * @return
     *     returns boolean
     */
    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "add", targetNamespace = "http://services/", className = "net.codegen.reservationagentrestservice.soap_services.Add")
    @ResponseWrapper(localName = "addResponse", targetNamespace = "http://services/", className = "net.codegen.reservationagentrestservice.soap_services.AddResponse")
    @Action(input = "http://services/HotelWS/addRequest", output = "http://services/HotelWS/addResponse")
    public boolean add(
        @WebParam(name = "arg0", targetNamespace = "")
        Hotel arg0);

}


...