• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1759
  • Last Modified:

Consuming External Web Services through Java Client Using Apache Axis

Dear Expert,

I am very new in web services.

I want to create a java client to consume external web services using apache axis.

My web services are deployed on this location (http://test.gateway.englandnet.co.uk/IOGatewayWebService/ProductService.asmx).

Can you please give me a java code. In which I can consume all the deployed web services?

Don't give me an apache examples. Please do write exact code.

This is what I have done till now.

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.net.*;

public class GetProduct
   public static void main(String [] args) throws Exception
       Service service = new Service();
       Call call = (Call)service.createCall();

       String endpoint = "http://test.gateway.englandnet.co.uk/IOGatewayWebService/ProductService.asmx";
       call.setTargetEndpointAddress(new URL(endpoint));  
       call.setOperationName(new QName("GetProduct"));

       String productId = args[0];
       String result = (String)call.invoke("http://gateway.englandnet.co.uk/IOGatewayWebservice/","GetProduct",new Object [] {new String(productId)});
       System.out.println("Got Product : ");

its compiling but when I am trying to run by passing ProductID given below.

 C:\Jdk_1.6\src>java GetProduct 6696E2E0-FF4D-4BEA-8286-3851E256A49D

its giving error saying

- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
- Exception:
org.xml.sax.SAXException: Deserializing parameter 'GetProductResult':  could not find deserializer for type {http://gateway.englandnet.co.uk/IOGatewayWebservice/}ErrorView
      at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:277)
      at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
      at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
      at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
      at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
      at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
      at org.apache.axis.client.Call.invoke(Call.java:2467)
      at org.apache.axis.client.Call.invoke(Call.java:2366)
      at GetProduct.main(GetProduct.java:25)

For your kind information, GetProduct() is web service deployed on the given link.

1 Solution
dinesh_baliAuthor Commented:

I am waiting for your response on my question.

Its very urgent!!

Please take my question on priority. Otherwise it is type of wasting money.

you can use wsdl2java to create required class and so you can easily call any service.

for more info;

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now