IllegalArgumentException when invoking axis2-webservice with client

Discussion in 'Java' started by MC, Feb 16, 2008.

  1. MC

    MC Guest

    i just wrote a webservice using the axis2-framework .. the service can
    be found here:
    ---------------------------------------------------
    package de.testService;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Vector;

    public class TestService {

    public Connection con = null;
    TransportContainer tc = new TransportContainer();
    Vector v = new Vector();

    public final void connection() throws Exception {
    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/travelagent", "root", "");
    }

    public TransportContainer getHotels(String table) {
    try {
    connection();
    String sql = "SELECT * FROM " + table;
    PreparedStatement pStmt = con.prepareStatement(sql);
    ResultSet rs = pStmt.executeQuery();
    while (rs.next()) {
    v.addElement(new Hotel(rs.getString(2), rs.getString(3), rs
    .getString(4), rs.getString(6), rs.getInt(5)));
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    tc.setData(v);
    return tc;

    }

    }
    ---------------------------------------------------

    the service uses a class called TransportContainer, which contains the
    data that should be send from the service to the client. this class can
    be found here:

    ---------------------------------------------------
    package de.testService;

    import java.util.Vector;

    public class TransportContainer {

    public TransportContainer() {

    }

    public Vector v;

    public void setData(Vector data) {
    this.v = data;
    }

    public Vector getData() {
    return this.v;
    }
    }
    ---------------------------------------------------

    to invoke the service, i wrote a client which can be found here:

    ---------------------------------------------------
    package de.wsTester;

    import javax.xml.namespace.QName;

    import org.apache.axis2.AxisFault;
    import org.apache.axis2.addressing.EndpointReference;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.rpc.client.RPCServiceClient;

    import de.testService.*;

    public class TestClient {

    public static void main(String[] args) throws AxisFault {

    RPCServiceClient sender = new RPCServiceClient();
    Options options = sender.getOptions();

    EndpointReference targetERP = new EndpointReference(
    "http://localhost:8080/axis2/services/testService");
    options.setTo(targetERP);

    QName opGetHotels = new QName("http://testService.de",
    "getHotels");

    String table = "hotels";
    Object[] opArgs = new Object[] { table };

    Class[] returnTypes = new Class[] { TransportContainer.class };
    Object[] response = sender.invokeBlocking(opGetHotels,
    opArgs,returnTypes);
    }

    }
    ---------------------------------------------------

    when i start the client, i get the following exception:

    ---------------------------------------------------
    Exception in thread "main" java.lang.IllegalArgumentException: argument
    type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at
    org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:391)
    at
    org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:655)
    at
    org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:603)
    at
    org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:535)
    at
    org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:103)
    at de.wsTester.TestClient.main(TestClient.java:29)
    ---------------------------------------------------

    thx to soapmonitor, i can see that the service return the expected
    data-structure

    ---------------------------------------------------
    <?xml version='1.0' encoding='utf-8'?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <ns:getHotelsResponse xmlns:ns="http://testService.de">
    <ns:return xmlns:ax21="http://testService.de/xsd"
    type="de.testService.TransportContainer">
    <ax21:data type="de.testService.Hotel">
    <ax21:hotelCity>München</ax21:hotelCity>
    <ax21:hotelCode>AX001</ax21:hotelCode>
    <ax21:hotelName>Axis2 Grand Hotel</ax21:hotelName>
    <ax21:numOfStars>5</ax21:numOfStars>
    </ax21:data>
    <ax21:data type="de.testService.Hotel">
    <ax21:hotelCity>Hamburg</ax21:hotelCity>
    <ax21:hotelCode>AX010</ax21:hotelCode>
    <ax21:hotelName>Axis2 Plaza</ax21:hotelName>
    <ax21:numOfStars>4</ax21:numOfStars>
    </ax21:data>
    <ax21:data type="de.testService.Hotel">
    <ax21:hotelCity>Unterammergau</ax21:hotelCity>
    <ax21:hotelCode>AX050</ax21:hotelCode>
    <ax21:hotelName>Achsenhütte</ax21:hotelName>
    <ax21:numOfStars>1</ax21:numOfStars>
    </ax21:data>
    </ns:return>
    </ns:getHotelsResponse>
    </soapenv:Body>
    </soapenv:Envelope>
    -------------------------------------------------

    whats wrong with my code? i would be thankful for any advice or hints on
    how to improve my code.

    greetings,

    matthias :):)
     
    MC, Feb 16, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. cod3nam3

    jsp client for axis2 webservice

    cod3nam3, Oct 29, 2007, in forum: Java
    Replies:
    10
    Views:
    1,004
    cod3nam3
    Nov 10, 2007
  2. Andrew Thompson

    Re: jsp client for axis2 webservice

    Andrew Thompson, Oct 29, 2007, in forum: Java
    Replies:
    0
    Views:
    420
    Andrew Thompson
    Oct 29, 2007
  3. Lew
    Replies:
    1
    Views:
    670
  4. carmelo
    Replies:
    0
    Views:
    1,290
    carmelo
    Oct 20, 2008
  5. Michael Post
    Replies:
    5
    Views:
    1,140
    Arne Vajhøj
    Aug 22, 2009
Loading...

Share This Page