problem with custom type mapping
osataken Jan 13, 2005 4:05 AMi tie up with this for a long time...
import tu.cs.ips.search.ProductList; import tu.cs.ips.search.SearchInfo; public interface SearchEndpoint extends Remote { public ProductList searchProduct(SearchInfo si)throws RemoteException; }
i try to expose this this SEI to a web service. i generate wsdl and mapping file with wscompile. i can deploy it with no error but when i try to invoke in via DII client, i got warning message and exception.
15:37:15,532 WARN [TypeMappingDescription] Class not found: com.vendora.search.searchProductResponse
15:37:15,542 WARN [TypeMappingDescription] Class not found: com.vendora.search.searchProduct
15:37:15,542 WARN [TypeMappingDescription] Class not found: com.vendora.search.searchProductResponse
15:37:15,542 WARN [TypeMappingDescription] Class not found: com.vendora.search.searchProduct
15:37:15,602 INFO [STDOUT] AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultSubcode:
faultString: java.io.IOException: No serializer found for class tu.cs.ips.search.SearchInfo in registry org.apache.axis.encoding.TypeMappingImpl@55d3df
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: java.io.IOException: No serializer found for class tu.cs.ips.search.SearchInfo in registry org.apache.axis.encoding.TypeMappingImpl@55d3df
at org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImpl.java:1474)
at org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationContextImpl.java:888)
.
.
.
this is my config.xml (use to run wscompile)
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config"> <service name="SearchService" targetNamespace="http://search.vendora.com" typeNamespace="http://search.vendora.com/types" packageName="com.vendora.search"> <interface name="com.vendora.search.SearchEndpoint"/> </service> </configuration>
and this is my DII Client
serviceFactory = ServiceFactory.newInstance(); Service service = serviceFactory.createService(new URL("http://localhost:8080/vendora/search/service?wsdl"), new QName("http://search.vendora.com", "SearchService")); Call call = (Call) service.createCall(new QName("http://search.vendora.com", "SearchEndpointPort"), "searchProduct"); ProductList retstr = (ProductList) call.invoke(new Object[]{new SearchInfo(name,values)});
My question are
1. do i need ws4ee-deployment.xml for additional mapping (if i need,what it look like)??
2. and how to solve this problem (i need to use DII Client)???
thank you very much for all answer....