Hi all,
I 'm trying to develop a web service using SOAP with database connection. Three files areinvolved :
testsoap.TestWsImpl.java, testDD.xml,
testsoap.client.TestClient.java
 
My Implementation calss is
package testsoap;
 
import java.io.*;
import java.lang.*;
import java.sql.*;
import java.util.*;
 
public class TestWsImpl
{
 
  public TestWsImpl()
 { 
 }
 
 //******************************************************************//
 // callConnection
 // TODO : To get connection
 //******************************************************************//
 public Connection callConnection()
 {
  Connection conn =null;
  try
  {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
       conn = DriverManager.getConnection("jdbc:odbc:ws","ma","ma");
  }
  catch(Exception ex)
  {
  }
  return conn;
 }
 
 //******************************************************************//
 // Function:getBookTitle
 //******************************************************************//
  
 public String getBookTitle(String artist)
 {
  PreparedStatement stmt;
  ResultSet rs;
  String retValue="";
   String query ="";
  Connection conn = null;
  try
  {
     
   
   conn = callConnection();   
   query = "select bookTitle from dbo.pptest where bookArtist = ?";
   stmt = conn.prepareStatement(query);
   stmt.setString(1,artist);
   rs = stmt.executeQuery();
   
   while(rs.next())
   {
    retValue =rs.getString(1);
   }
   System.out.println("Book Title For " + artist + " : " + retValue);
   rs.close();
   stmt.close();
   conn.close();
   conn = null;
     
  }
  catch(Exception e1){
   if (conn!=null)
   System.out.println("getBookTitle() : Release Connection Failed! ");
   return null;
  }  
  return retValue;
}
 
 
}
 
------------------------------------------------------------------------------------------------------------------------------
<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
             id="urn:cd-test-ws"
>
  <isd:provider type="java"
                scope="Application"
                methods="getBookTitle"
  >
    <isd:java class="testsoap.TestWsImpl" static="false" />
  </isd:provider>
 
  <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
 
</isd:service>
-----------------------------------------------------------------------------------------------------------------------------
 
testsoap.client.TestClient.java
package testsoap.client;
 
/*
 Required due to use of URL class, required by Call Class
*/
import java.net.URL;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
import org.apache.soap.Constants;
import org.apache.soap.Fault;
import org.apache.soap.SOAPException;
import org.apache.soap.rpc.Call;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;
import testsoap.*;
 

public class TestClient {
 
  public void getData(URL url, String artist) throws SOAPException {
   
 System.out.println("Listing current Books.");
    System.out.println("Book's Artist Name : " + artist);
 
    // Build the Call object
    Call call = new Call( );
    call.setTargetObjectURI("urn:cd-test-ws");
    call.setMethodName("getBookTitle");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
 
 // Set up parameters
    Vector params = new Vector( );
    params.addElement(new Parameter("artist", String.class, artist, null));
    call.setParams(params);
 
    // Invoke the call
    Response response;
 System.out.println("URL: " + url);
    response = call.invoke(url, "");
 
    if (!response.generatedFault( )) {
    System.out.println("3");
       Parameter returnValue = response.getReturnValue( );
       String title = (String)returnValue.getValue();
       System.out.println(" Client Test Result is (TITLE) : " + title);
   
    } else {
     System.out.println("4");
      Fault fault = response.getFault( );
      System.out.println("Error encountered: " + fault.getFaultString( ));
    }
  }
 
  public static void main(String[] args) {
    if (args.length != 2) {
      System.out.println("Usage: java testsoap.TestClient [SOAP server URL]");
      return;
    }
 
    try {
      // URL for SOAP server to connect to
      URL url = new URL(args[0]);
   String param = args[1];
  System.out.println(param);
      // List the current CDs
      TestClient cl = new TestClient( );
      cl.getData(url, param);
 
    } catch (Exception e) {
      e.printStackTrace( );
    }
  }
}
 
------------------------------------------------------------------------------------------------------
 
 
D:\soapDev\src>java -classpath d:\xerces-1_4_4\xerces.jar;d:\tomsoap\lib\mail.jar;d:\tomsoap\lib\activation.jar;d:\tomsoap\lib\soap.jar;D;\tomsoap\lib\poolman\jdbc2_0-stdext.jar;d:\tomsoap\lib\bsf.jar;d:\tomsoap\lib\db2java.zip;d:\tomsoap\lib\js.jar;D:\soapDev\src;. testsoap.client.TestClient http://localhost:8080/soap/servlet/rpcrouter "John"

Result :
John
Listing current Books.
Book's Artist Name : John
URL:
http://localhost:8080/soap/servlet/rpcrouter
Error encountered: Unable to resolve target object: testsoap.TestWsImpl
 
Can anybody tell me that what is happening to the classpath that i set? What is the solution for this case?
Thanks in advance.
 
 
Regards
PP
 
 
 
 
 

Reply via email to