Java JAXWS方法参数数据类型赢得';不变

Java JAXWS方法参数数据类型赢得';不变,java,soap,jax-ws,Java,Soap,Jax Ws,我发布了两个端点 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类中的

我发布了两个端点

        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。但是如果我只发布一个端点,那么它就可以正常工作

这就是在客户端应用程序中生成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);

}

数据类型不会改变是什么意思?您是否成功发布了这些终结点?是的,在终结点发布之后。我使用wsimport命令在客户端应用程序中生成了类。如上所示,在RoomTypeWS中,
public boolean add(@webgram(name=“arg0”,targetNamespace=“”)Hotel arg0)应该是
@webgram(name=“arg0”,targetNamespace=“”)房间类型arg0)但事实并非如此。这是自上而下的方法,在生成工件类之前,您应该仔细检查您的wsdl,可能只是基于错误的端点生成了类。您还应该发布wsdl/xsd。