2013-11-01 23 views
0

我正在寫一個汽車租賃機構的Java與Eclipse和GWT的Web應用程序,但我卡在一個錯誤與此服務器方法使用由失敗的RPC,createRentDTO錯誤,當方法創建一個對象(持續entitiy)

private RentDTO createRentDTO(Rent rent) { 
    return new RentDTO(createEmployeeDTO(rent.getEmployee()), 
           createClientDTO(rent.getClient()), 
           createCarDTO(rent.getCar()), 
           rent.getId()); 
     } 

我注意到,如果我改變在以下方面回createRentDTO的,它的工作原理:

 return new RentDTO(new EmployeeDTO("mike", "smith", (long) 99, "mike87","qwe123"), 
         new ClientDTO("harry", "jones", "cl24h89"), 
         new CarDTO("SUBARU", "supercar", (long) 25000,(long) 12), 
         rent.getId() 
         ); 

的問題顯然是,我無法填補這個問題ss隨機值,比如「harry」,「jones」,但我必須考慮我已經保存的員工,客戶和汽車的價值(我認爲使用getEmployeeDTO .getClientDTo .getCarDTo?等租金吸氣劑)。 我該怎麼做,爲什麼不嘗試工作的第一種方式?

這裏涉及到的問題的一些其他代碼: Rent.class

public class Rent implements Serializable { 

     Employee employee; 
     Client client; 
     Car car; 
     long id; 

     // getter and setter like: 
     public Employee getEmployee() { 
    return employee; 
    } 
     // getCar() and getClient are equal to getEmployee [...] 

    } 

員工,客戶和汽車都是簡單類(它們被序列化,使他們在轉存數據庫)非常相似,具有一些屬性,如姓名,用戶名,密碼,ID或價格。

我只寫Employee.class

public class Employee { 

String name; 
String surname; 
@Id 
Long id; 
String username; 
String password; 

    // + getter and setter like getName() , getSurname() ..... 
    } 

這是方法createEmployeeDTO()

(createCarDTO和createClientDTO是平等的......這變化是唯一一些屬性)

 private EmployeeDTO createEmployeeDTO(Employee employee) { 
      return new EmployeeDTO(employee.getName(), 
             employee.getSurname(), 
             employee.getId(), 
             employee.getUsername(), 
             employee.getPassword()); 
     } 

租金的目標類是要能夠選擇網絡應用程序,它員工已經租了客戶

當RPC失敗,它的用戶提供了一個通用的錯誤

「500該呼叫在服務器上失敗;看到服務器日誌的詳細信息」

,但碼頭的服務器日誌只是說POST方法失敗,並在Eclipse控制檯中不會有錯誤。

感謝你的幫助,隨意問一切

回答

1

做你的DTO具有零個參數的構造?能見度是不是很重要? 沒有一個無參數的構造您的通話將失敗。

是你的DTO的一個共享的包裏面呢?如果你想用你的DTO在服務器上客戶端,他們必須在共享包。

將日誌級別更改爲TRACE以獲取服務器日誌中的更多信息。