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
org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/TxResultSet.jws?WSDL
Any suggestion would be appreciated as to what went wrong.
Regards.
|
- Problem deserializing a vector Pierre Lasante
- Problem deserializing a vector Pierre Lasante