当前位置: 首页 > 面试题库 >

Java 如何更改webservice url端点?

郦昆
2023-03-14
问题内容

我使用JBoss utils(JAX-WS兼容)生成了一个web服务客户机,使用Eclipse的“来自wsdl的web服务客户机”。

所以,我提供的唯一东西是指向web服务WSDL的url。

现在,web服务提供者告诉我更改web服务的“客户端端点应用程序访问的url”。

它是什么以及如何改变它?


问题答案:

在IMO中,提供者告诉你更改服务端点(即到web服务的位置),而不是客户端端点(我不知道这可能是什么)。要更改服务端点,基本上有两个选项。

使用绑定提供程序设置终结点URL

第一个选项是更改BindingProviderBindingProvider.ENDPOINT_ADDRESS_属性值(每个代理都实现javax.html" target="_blank">xml.ws.BindingProvider接口):

...
EchoService service = new EchoService();
Echo port = service.getEchoPort();

/* Set NEW Endpoint Location */
String endpointURL = "http://NEW_ENDPOINT_URL";
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);

System.out.println("Server said: " + echo.echo(args[0]));
...

缺点是,这只在原始WSDL仍然可以访问时才起作用。不推荐。

使用WSDL获取端点URL

第二个选项是从WSDL获取端点URL。

...
URL newEndpoint = new URL("NEW_ENDPOINT_URL");
QName qname = new QName("http://ws.mycompany.tld","EchoService"); 

EchoService service = new EchoService(newEndpoint, qname);
Echo port = service.getEchoPort();

System.out.println("Server said: " + echo.echo(args[0]));
...


 类似资料:
  • 问题内容: 我正在使用JavaMail编写一个小型Java应用程序,该应用程序向用户发送自动电子邮件。他们可以在两个端口之间选择(现在):25和587。可以通过GUI上的单选按钮选择端口。 我添加了一个测试按钮,以允许用户测试电子邮件设置(包括端口)。但是,由于某种原因,一旦用户尝试发送测试电子邮件,就无法更改端口。Javamail将始终使用原始测试电子邮件的端口。 示例:用户尝试在端口25上发送

  • 问题内容: 如何动态更改JAXWS客户端使用的地址?该客户端是由wsimport生成的。 问题答案: 使用Apache CXF解决了该问题。 仅用两行代码!这是代码段:

  • 问题内容: 我想更改使用Sun JDK打开JDK的Maven Java主页。我该怎么做 ? 非常抱歉。我忘了写下面的代码: 我的Java home默认路径已经是sun jdk。但是maven java home指出了openjdk。我只想为Maven修复它。 问题答案: 如果您使用的是Linux,请使用语法设置JAVA_HOME 。实际上,不仅是Maven。

  • 问题内容: 例如,如何将其从5858更改为7000? 问题答案: 您可以使用以下选项: 您可以对>> v8的最新节点使用选项 https://nodejs.org/en/docs/inspector/

  • 请问如何更改pentaho 5.1的端口。我使用的是windows 10。现在值为8080但我需要更改,我在网上搜索了信息,他们让我修改一些xml文件,但问题是,他们提到的文件在我的pentaho中不存在。 非常感谢!

  • 我正在尝试运行以下命令将hpi文件打包到目标文件夹中 并观察到下面的错误消息,该消息表示该端口已被使用。我只是试图手动终止端口,但我没有这样做的特权。是否可以通过作为参数-Dhpi传递来自定义端口号。port=xxx类似于这样的吗? 例外: JAVA网BindException:地址已在使用中:在sun处绑定。尼奥。中国网。在sun的bind0(本机方法)。尼奥。中国网。在sun上绑定(Net.j