axis2 (1.3) проблема с клиентом - PullRequest
0 голосов
/ 04 июня 2010

(ось2 1.3, стойки2 2.1.8.1, tomcat 6.x, java 1.5.0)

У меня проблема с созданием моего первого веб-сервиса.

  1. Я создаю MOCK API, который я хочу проверить. Мое действие:

    public HotelMessage[] getMessages(String roomNr) {
    HotelMessage[] msg2return = new HotelMessage[1];
    HotelMessage m1 = new HotelMessage();
    m1.setId(1L);
    m1.setMessage("wiadomosc pierwsza");
    m1.setTitle("title pierwszy");
    m1.setRead(false);
    m1.setRoomNr(roomNr);
    System.err.println("returning messages");
    return msg2return;
    

    }

Мой класс HotelMessage выглядит так:

import java.io.Serializable;
import java.sql.Date;

public class HotelMessage implements Serializable{

    private static final long serialVersionUID = -6785924436619067967L;
        private long id;
    private boolean read;
    private String roomNr;
    private String title;
    private String message;
    private Date create_date;

    //setters + getters
        }

После создания aar я загружаю это в mu axis2 на tomcat, затем:

wsdl2java.bat -uri http://localhost:8088/axis2/services/HotelAPI?wsdl -d adb -s -S .

все работает просто отлично, но я получил это исключение, когда пытался вызвать действие getMessages ("STH") с кодом:

HotelAPIStub.GetMessages getMessages = new HotelAPIStub.GetMessages();
    getMessages.setParam0("ble");
    HotelAPIStub.HotelMessage[] tmp; 
    try{
        HotelAPIStub.GetMessagesResponse resp3 = stub.getMessages(getMessages);
        tmp = resp3.get_return();
        System.err.println("THERE ARE "+tmp.length+"MESSAGES!");
    }catch (RemoteException ex){
        System.err.println("NO MESSAGES!");
        ex.printStackTrace();
    }

У меня есть это исключение:

org.apache.axis2.AxisFault: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
    at com.swmind.IPTV.hotel.HotelAPIStub.getMessages(HotelAPIStub.java:371)
    at com.swmind.IPTV.hotel.actions.ShowBillClass.execute(ShowBillClass.java:57)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

Может ли кто-нибудь помочь мне? Я пытался гуглить, но ничего полезного не нашел. Спасибо Цим

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

В вашем фиктивном API вы никогда не указываете msg2return[0] на m1.

0 голосов
/ 16 июня 2010

Решение: перезапустить tomcat с axis2 в нем ...

...