File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Web Services Certification (SCDJWS/OCEJWSD) and the fly likes Compilation of a Dynamic Proxy Client Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Web Services Certification (SCDJWS/OCEJWSD)
Bookmark "Compilation of a Dynamic Proxy Client" Watch "Compilation of a Dynamic Proxy Client" New topic

Compilation of a Dynamic Proxy Client

Olivier Mocquais

Joined: Aug 01, 2005
Posts: 8

I have a question about the Dynamic Proxy Client which is extracted from the scjws guide of Mikalai Zaikin.

1/ How can I compile this java code because I don't have the com.example.HelloIF class when I write the client ?

2/ If the web service uses complex types in parameters, you don't have these complex types when you write this dynamic proxy client, how can I compile the java client code ?



package com.example;

import javax.xml.rpc.Service;
import javax.xml.rpc.JAXRPCException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceFactory;

public class HelloClient {
public static void main(String[] args) {
try {
String UrlString = "http://localhost:8080/ProxyHelloWorld.wsdl";
String nameSpaceUri = "";
String serviceName = "HelloWorld"; // maps to service name in WSDL
String portName = "HelloIFPort"; // maps to port name in WSDL
URL helloWsdlUrl = new URL(UrlString);

ServiceFactory serviceFactory = ServiceFactory.newInstance();

// Create a Service object named helloService
Service helloService = serviceFactory.createService(helloWsdlUrl, new QName(nameSpaceUri, serviceName));

// Destination for service endpoint retrieval
QName qn = new QName(nameSpaceUri, portName);

// Create a proxy with type of interface 'com.example.HelloIF'
HelloIF myProxy = (HelloIF) helloService.getPort(qn, com.example.HelloIF.class);

} catch (Exception ex) {
Nagaraja Manchikalapati

Joined: Jun 22, 2004
Posts: 8
We need to use WSDL2Java Tools to generate service endpoint interface, complex parameters and return values.

Reference: Java Webservices Blue Prints Chapter 5.

5.3.4 WSDL-to-Java Type Mapping

Although not advisable, it is possible for a developer to work without the
benefit of a mapping tool, if none are available. However, without such mapping
tools the scope of the developer´┐Żs work greatly expands. For example, just to
compile the client code, the developer must understand the WSDL for a service
and generate by hand Java classes that match the parameter and return types
defined in the WSDL document or, in the case of a dynamic proxy, the client-side
representation of the service endpoint interface
. These classes must be set up properly
so that the JAX-RPC runtime can match SOAP message types to the corresponding
Java objects.
Olivier Mocquais

Joined: Aug 01, 2005
Posts: 8
Ok. Thanks for your answer.
I agree. Here's the link:
subject: Compilation of a Dynamic Proxy Client
It's not a secret anymore!