LibraryToggle FramesPrintFeedback

The Service class defines an addPort() method, shown in Example 2.3, that is used in cases where there is no WSDL contract available to the consumer implementation. The addPort() method allows you to give a Service object the information, which is typically stored in a wsdl:port element, necessary to create a proxy for a service implementation.


The value of the portName is a QName. The value of its namespace part is the target namespace of the service. The service's target namespace is specified in the targetNamespace property of the @WebService annotation. The value of the QName's local part is the value of wsdl:port element's name attribute. You can determine this value in one of the following ways:

  1. Specify it in the portName property of the @WebService annotation.

  2. Append Port to the value of the name property of the @WebService annotation.

  3. Append Port to the name of the SEI.

The value of the bindingId parameter is a string that uniquely identifies the type of binding used by the endpoint. For a SOAP binding you use the standard SOAP namespace: http://schemas.xmlsoap.org/soap/. If the endpoint is not using a SOAP binding, the value of the bindingId parameter is determined by the binding developer.

The value of the endpointAddress parameter is the address where the endpoint is published. For a SOAP/HTTP endpoint, the address is an HTTP address. Transports other than HTTP use different address schemes.

Example 2.4 shows code for adding a port to the Service object created in Example 2.2.

Example 2.4. Adding a Port to a Service Object

package com.fusesource.demo;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class Client
{
public static void main(String args[])
  {
    ...
1    QName portName = new QName("http://demo.fusesource.com", "stockQuoteReporterPort");
2    s.addPort(portName, 
3              "http://schemas.xmlsoap.org/soap/", 
4              "http://localhost:9000/StockQuote");
    ...
  }
}

The code in Example 2.4 does the following:

1

Creates the QName for the portName parameter.

2

Calls the addPort() method.

3

Specifies that the endpoint uses a SOAP binding.

4

Specifies the address where the endpoint is published.

Comments powered by Disqus
loading table of contents...