Hi, this is the message I get each time I run the client:
 
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: java.lang.NullPointerException
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}hostname:pierre
 
java.lang.NullPointerException
        at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
        at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
        at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1077)
        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
        at org.apache.crimson.parser.Parser2.content(Unknown Source)
        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
        at org.apache.crimson.parser.Parser2.content(Unknown Source)
        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
        at org.apache.crimson.parser.Parser2.parseInternal(Unknown Source)
        at org.apache.crimson.parser.Parser2.parse(Unknown Source)
        at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:225)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2737)
        at org.apache.axis.client.Call.invoke(Call.java:2720)
        at org.apache.axis.client.Call.invoke(Call.java:2396)
        at org.apache.axis.client.Call.invoke(Call.java:2319)
        at org.apache.axis.client.Call.invoke(Call.java:1776)
        at localhost.axis.TxResultSet_jws.TxResultSetSoapBindingStub.getCoffee(TxResultSetSoapBindingStub.java:100)
        at TxResultSetClient.main(TxResultSetClient.java:20)
 
Here is the client code:
 
import javax.xml.rpc.ServiceException;
import localhost.axis.TxResultSet_jws.*;
import java.util.Vector;
import java.util.ListIterator;
 
public class TxResultSetClient
{
    public static void main(String [] args)
    {
        localhost.axis.TxResultSet_jws.TxResultSet service;
        try {
            service = new TxResultSetServiceLocator().getTxResultSet();
            // getCoffee is in RxResultSet.jws and will return a Vector
            Vector v = service.getCoffee();
            // show the data from Sybase
            ListIterator iter = v.listIterator();
            while(iter.hasNext()) {
                System.out.println(iter.next());
            }
        } catch (ServiceException e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
}
 
Here is the service code:
 
import java.util.Vector;
import java.util.ListIterator;
import java.io.*;
import java.sql.*;
import javax.sql.*;
 
public class TxResultSet{
    public static Connection con;
    public static Statement stmt;
    public static ResultSet rs;
    public static Vector v;
 
    public Vector getCoffee() {
 
        try {
            Class.forName("com.sybase.jdbc.SybDriver").newInstance();
            con = DriverManager.getConnection("jdbc:sybase:Tds:localhost:2638?ServiceName=asademo","dba","sql");
            stmt = con.createStatement();
            rs =  stmt.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES");
        } catch(Exception e) {
            System.out.println("Something went wrong: " + e.getMessage());
        }
 
        try {
            v = new Vector();
            while( rs.next() )    {
                Vector row = new Vector();
                row.add(rs.getString("COF_NAME"));
                row.add(rs.getString("PRICE"));
                v.add(row);
           }
        } catch(SQLException se) {
            System.out.println("Bad vector: " + se.getMessage());
        }
 
        try {
            rs.close();
            stmt.close();
            con.close();
        } catch(Exception e) {
            System.out.println("Bad rs stmt or con" + e.getMessage());
        }
 
        return v;
    }
}

I thought Apache Axis knew how to handle Vector and that it was not necessary to learn how to handle
serialization and deserialization.
 
I deployed my service by copying the code to the axis folder with a .jws extension and I created the stubs with the
 
Any suggestion would be appreciated as to what went wrong.
 
Regards.

Reply via email to