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
