I cant help but I have a similar issue. If I have an interface
with a Map parameter and run Java2WSDL followed by WSDL2Java
the Map is converted into a HashMap.

Im therefore not sure if AXIS is completely happy with interface
types used as parameters.

My bit.
Stuart.

Shantanu Sen wrote:

I have the following interface that I want to expose
as a web service.


public interface MyOperation extends java.rmi.Remote {

public MyComplex testOperation(java.util.Map map,
MyDoc[] docs)
    throws java.rmi.RemoteException;
}

where MyDoc is an interface:

public interface MyDoc {

public String getName();
public byte[] getBytes();

}

and MyComplex is a concrete class:

public class MyComplex implements Serializable {
Map header;
MyDoc[] payload;
}

When I do a Java2WSDL with the -l
http://localhost:8080 option, it generates the
following WSDL. But when I try  WSDL2Java on the same
wsdl, it gives me the exception:

java.io.IOException: Type {http://env}MyDoc is
referenced but not defined.
        at
org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(Symbol
Table.java:522)

MyDoc is indeed no defined in the generated wsdl. Is this a bug? Is there a way to supply a concrete
class that implements the MyDoc interface so that this
problem can be solved?


The generated WSDL is attached.

Thanks for any help,
Shantanu



Reply via email to