25.5. 实施消费者的业务日志

概述

旦实例化远程端点的服务代理,即可调用其方法,就像它是本地对象一样。调用块,直到远程方法完成为止。

注意

如果方法标有 @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 对象获取服务代理。

在服务代理上调用操作。