有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaAxis1。X客户更改地址

我使用axis1工具从WSDL生成客户端。我的问题是,我想连接到与WSDL上的主机不同的主机。因此,我:

new BobsledWSHostLocator("http://localhost:8731/Bobsled/Core/?wsdl", new QName("http://lint.com/schemas/Bobsled", "BobsledWSHost"));

但是当我尝试与主机通信时,它仍然会转到我在wsdl上的地址,我从该地址生成了客户端。。。何时应该转到本地主机

我想以图表的方式更改主机地址,这样我就可以拥有各种主机

我错过了什么


共 (2) 个答案

  1. # 1 楼答案

    Axis还应该生成一个以BindingStub结尾的类,该类有一个采用webservice端点URL的构造函数和一个org.apache.axis.client.Service对象,该对象可以根据服务的QName进行构造。它可能看起来像这样:

    new BobsledWSHostBindingStub(
        new URL("http://example.com/Bobsled/Core/"),
        new Service(new QName("http://lint.com/schemas/Bobsled", "BobsledWSHost")));
    

    Edit:这实际上与前面提到的nwinkler方法内部使用的get*Port代码相同

  2. # 2 楼答案

    试试这个:

    BobsledWSHostLocator locator = new BobsledWSHostLocator();
    BobsledWSHostService service = locator.getBobsledWSHostHttpPort(new URL("http://localhost:8731/Bobsled/Core/?wsdl"));