25.5. 实施 Consumer 的 Business Logic
概述
为远程端点实例化服务代理后,您可以调用其方法,就如同它是本地对象一样。调用块,直到远程方法完成。
注意
如果方法标上 @OneWay
注释,则调用会立即返回。
示例
例 25.7 “没有 WSDL 合同的消费者” 显示 例 24.7 “完全解析的 SEI” 中定义的服务的使用者。
例 25.7. 没有 WSDL 合同的消费者
package com.fusesource.demo; import java.io.File; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; public class Client { public static void main(String args[]) { QName serviceName = new QName("http://demo.eric.org", "stockQuoteReporter"); Service s = Service.create(serviceName); QName portName = new QName("http://demo.eric.org", "stockQuoteReporterPort"); s.addPort(portName, "http://schemas.xmlsoap.org/soap/", "http://localhost:9000/EricStockQuote"); quoteReporter proxy = s.getPort(portName, quoteReporter.class); Quote quote = proxy.getQuote("ALPHA"); System.out.println("Stock "+quote.getID()+" is worth "+quote.getVal()+" as of "+quote.getTime()); } }
例 25.7 “没有 WSDL 合同的消费者” 中的代码执行以下操作:
创建 Service
对象。
在 Service
对象中添加端点定义。
从 Service
对象获取服务代理。
在服务代理上调用操作。