00001 import org.apache.axis.client.Call;
00002 import org.apache.axis.client.Service;
00003 import org.apache.axis.encoding.XMLType;
00004 import org.apache.axis.utils.Options;
00005 import javax.xml.namespace.QName;
00006 import javax.xml.rpc.ParameterMode;
00007 import org.apache.axis.message.SOAPBodyElement;
00008 import java.net.URL;
00009 import org.apache.axis.message.*;
00010 public class ApiClient
00011 {public static void main(String [] args)
00012 {try {
00013 Options options = new Options(args);
00014 String endpointURL = "http://parrot.ebi.ac.uk:8099/cgi-bin/msd_soap_service.cgi?client1";
00015 long before = System.currentTimeMillis();
00016 Service apiserver = new Service();
00017 Call connect = (Call) apiserver.createCall();
00018 Call resultset = (Call) apiserver.createCall();
00019 Call query = (Call) apiserver.createCall();
00020 Call exec_query = (Call) apiserver.createCall();
00021 connect.setTargetEndpointAddress( new java.net.URL(endpointURL) );
00022 resultset.setTargetEndpointAddress( new java.net.URL(endpointURL) );
00023 query.setTargetEndpointAddress( new java.net.URL(endpointURL) );
00024 exec_query.setTargetEndpointAddress( new java.net.URL(endpointURL) );
00025 connect.addParameter( "conn-name", XMLType.XSD_STRING, ParameterMode.IN );
00026 connect.addParameter( "host", XMLType.XSD_STRING, ParameterMode.IN );
00027 connect.addParameter( "usern", XMLType.XSD_STRING, ParameterMode.IN );
00028 connect.addParameter( "pass", XMLType.XSD_STRING, ParameterMode.IN );
00029 connect.addParameter( "status",XMLType.XSD_INT,ParameterMode.OUT);
00030 connect.setReturnType( org.apache.axis.encoding.XMLType.XSD_INT);
00031 resultset.addParameter( "conn-name", XMLType.XSD_STRING, ParameterMode.IN );
00032 resultset.addParameter( "query-name", XMLType.XSD_STRING, ParameterMode.IN );
00033 resultset.addParameter( "res-name", XMLType.XSD_STRING, ParameterMode.IN );
00034 resultset.addParameter( "nors",XMLType.XSD_INT,ParameterMode.IN);
00035 resultset.addParameter( "status",XMLType.XSD_INT,ParameterMode.OUT);
00036 resultset.setReturnType( org.apache.axis.encoding.XMLType.XSD_INT);
00037 query.addParameter( "conn-name", XMLType.XSD_STRING, ParameterMode.IN );
00038 query.addParameter( "query-name", XMLType.XSD_STRING, ParameterMode.IN );
00039 query.addParameter( "result-name", XMLType.XSD_STRING, ParameterMode.IN );
00040 query.addParameter( "status",XMLType.XSD_INT,ParameterMode.OUT);
00041 query.setReturnType( org.apache.axis.encoding.XMLType.XSD_INT);
00042 exec_query.addParameter( "conn-name", XMLType.XSD_STRING, ParameterMode.IN );
00043 exec_query.addParameter( "query-name", XMLType.XSD_STRING, ParameterMode.IN );
00044 exec_query.addParameter( "result-name", XMLType.XSD_STRING, ParameterMode.IN );
00045 exec_query.addParameter( "buf", XMLType.XSD_STRING, ParameterMode.IN );
00046 exec_query.addParameter( "stm", XMLType.XSD_STRING, ParameterMode.IN );
00047 exec_query.addParameter( "-size",XMLType.XSD_INT,ParameterMode.OUT);
00048 exec_query.addParameter( "param",XMLType.XSD_ANYTYPE,ParameterMode.OUT);
00049 exec_query.setReturnType( org.apache.axis.encoding.XMLType.XSD_INT);
00050 Integer ConnOutParam=new Integer(0);
00051 Integer ResultOutParam=new Integer(0);
00052 String connname = "MyConnection";
00053 String queryname = "MyQuery";
00054 String resname = "MyResult";
00055 String host = "msdsrchd";
00056 String user = "wh1";
00057 String pass = "wh1";
00058 Integer nors = new Integer(2);
00059 String sql = "select * from atom_data where atom_data_id >= :f<int> and atom_data_id <= 200*:f<int>";
00060 Integer buf = new Integer(50);
00061 connect.setOperationName( "msd-connect");
00062 resultset.setOperationName( "msd-resultset");
00063 query.setOperationName( "msd-query");
00064 exec_query.setOperationName( "msd-exec-query");
00065 Integer connret=(Integer)connect.invoke(new Object[]{connname,host,user,pass});
00066 Integer resultret=(Integer)resultset.invoke(new Object[]{connname,queryname,resname,nors});
00067 Integer queryret=(Integer)query.invoke(new Object[]{connname,queryname,resname});
00068 Integer exec_queryret=(Integer)exec_query.invoke(new Object[]{connname,queryname,resname,buf,sql});
00069 System.out.println("\nConnection Return: " + connret);
00070 System.out.println("\nResult Set Return: " + resultret);
00071 System.out.println("\nQuery Return: " + queryret);
00072 long after = System.currentTimeMillis();
00073 long time = after-before;
00074 System.out.println("\nTime taken = "+ time);
00075 } catch (Exception e) {
00076 System.err.println(e.toString());
00077 e.printStackTrace();
00078 }
00079 }
00080 }