• 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();
       
       registerTypeMappings(call);

       String endpoint = "http://test.gateway.englandnet.co.uk/IOGatewayWebService/ProductService.asmx";
       
       call.setTargetEndpointAddress(new URL(endpoint));  
             
       call.setSOAPActionURI("http://gateway.englandnet.co.uk/IOGatewayWebservice/GetProduct");
             
       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 : ");
       System.out.println(result);        
   }
}

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.

Thanks
 
0
dinesh_bali
Asked:
dinesh_bali
1 Solution
 
dinesh_baliAuthor Commented:
Experts,

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.

Thanks.
0
 
ysnkyCommented:
you can use wsdl2java to create required class and so you can easily call any service.

for more info;
http://www.onjava.com/pub/a/onjava/2002/06/05/axis.html?page=2
0

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