Once you a service proxy for a remote endpoint, you can invoke its methods as if it were a local object. The calls will block until the remote method completes.
|
Note |
|---|---|
|
If a method is annotated with the |
Example 2.7, “Consumer Implemented without a WSDL Contract” shows a consumer for the service defined in Example 1.7, “Fully Annotated SEI”.
Example 2.7. Consumer Implemented without a WSDL Contract
package com.iona.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());
}
}
The code in Example 2.7, “Consumer Implemented without a WSDL Contract” does the following: