Hi all,
I appreciate your time, for reading my post.
I have created webservice (jax-rpc) to get the exchange rates. when i try to execute these codes i am getting the following exception
org.jboss.ws.WSException: Cannot obtain java type mapping for: {http://www.mnb.hu/webservices/}>GetInfo
at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCMetaDataBuilder.processDocElement(JAXRPCMetaDataBuilder.java:627)
at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCMetaDataBuilder.buildParameterMetaDataDoc(JAXRPCMetaDataBuilder.java:886)
at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCMetaDataBuilder.setupOperationsFromWSDL(JAXRPCMetaDataBuilder.java:214)
at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCClientMetaDataBuilder.buildMetaDataInternal(JAXRPCClientMetaDataBuilder.java:223)
at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCClientMetaDataBuilder.buildMetaData(JAXRPCClientMetaDataBuilder.java:135)
at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCClientMetaDataBuilder.buildMetaData(JAXRPCClientMetaDataBuilder.java:87)
at org.jboss.ws.core.jaxrpc.client.ServiceImpl.<init>(ServiceImpl.java:111)
at org.jboss.ws.core.jaxrpc.client.ServiceFactoryImpl.createService(ServiceFactoryImpl.java:157)
at org.jboss.ws.core.jaxrpc.client.ServiceFactoryImpl.createService(ServiceFactoryImpl.java:128)
at com.acer.ags.webservice.client.jaxrpc.Hung.main(Hung.java:19)
i knew that i am missing something. I would be grateful, if you guys guide me.
here is the webservice code
public static void main(String[] args) {
try {
String UrlString = "http://.........?WSDL";
String nameSpaceUri = "target namespace url";
String serviceName = "rateService";
String portName = "rateServiceSoap";
URL wsdlUrl = new URL(UrlString);
ServiceFactory sf = ServiceFactory.newInstance();
javax.xml.rpc.Service s = sf.createService(wsdlUrl, new QName(nameSpaceUri, serviceName));
rateServiceSoapzc = (rateServiceSoap) s.getPort(new QName(nameSpaceUri, rateServiceSoap), rateServiceSoap.class);
zc.getExchangeRates("2009-06-01", "2009-06-30", "EUR");
} catch (ServiceException ex) {
ex.printStackTrace();
System.out.println(ex.getCause());
} catch (Exception e) {
e.printStackTrace();
}
}
the WSDL from the service provider
<wsdl:definitions targetNamespace="target namespace url">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="target namespace url">
<s:element name="GetInfo">
<s:complexType/>
</s:element>
<s:element name="GetExchangeRates">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="startDate" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="endDate" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="currencyNames" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetExchangeRatesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetExchangeRatesResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="GetInfoSoapIn">
<wsdl:part name="parameters" element="tns:GetInfo"/>
</wsdl:message>
<wsdl:message name="GetInfoSoapOut">
<wsdl:part name="parameters" element="tns:GetInfoResponse"/>
</wsdl:message>
<wsdl:message name="GetExchangeRatesSoapIn">
<wsdl:part name="parameters" element="tns:GetExchangeRates"/>
</wsdl:message>
<wsdl:message name="GetExchangeRatesSoapOut">
<wsdl:part name="parameters" element="tns:GetExchangeRatesResponse"/>
</wsdl:message>
<wsdl:portType name="rateServiceSoap">
<wsdl:operation name="GetInfo">
<wsdl:input message="tns:GetInfoSoapIn"/>
<wsdl:output message="tns:GetInfoSoapOut"/>
</wsdl:operation>
<wsdl:operation name="GetExchangeRates">
<wsdl:input message="tns:GetExchangeRatesSoapIn"/>
<wsdl:output message="tns:GetExchangeRatesSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="rateServiceSoap" type="tns:rateServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="GetInfo">
<soap:operation soapAction="target namespace url/GetInfo" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetExchangeRates">
<soap:operation soapAction="target namespace url/GetExchangeRates" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="rateService">
<documentation> curreny exchange rate webservice.</documentation>
<wsdl:port name="rateServiceSoap" binding="tns:rateServiceSoap">
<soap:address location="location url"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Thanks