2010-06-04 143 views
0

(axis2 1.3,struts2 2.1.8.1,tomcat 6.x,java 1.5.0)axis2(1.3)客戶端問題

我在創建我的第一個Web服務時遇到了問題。

  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之後,我上傳這畝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) 

任何人都可以幫我嗎?我試圖谷歌它,但沒有發現任何有用的東西。 THX Tzim

回答

0

解決方案:重新啓動與它的Axis2的Tomcat ...

1

在你的模擬API你永遠指向msg2return[0]m1

+0

是的,我發現後來:) – tzim 2011-11-29 09:00:31