我正在使用eclipse和GWT在java中编写一个汽车租赁代理商的网络应用程序,但是我遇到了一个错误,这个服务器方法被失败的RPC使用, createRentDTO < / b>:
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()
);
问题显然是我无法用“哈里”“琼斯”这样的随机值填充课程,但我要采取我已经保存的员工,客户和汽车的价值(我想使用像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 [...]
}
员工,客户和汽车都是简单的类(它们被序列化以使它们在数据库中可以保存)与彼此非常相似,具有一些属性,如名称,姓氏,用户名,密码,身份证或价格。
我只会写 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服务器上的呼叫失败;有关详细信息,请参阅服务器日志”
但是jetty的服务器日志只说POST方法失败了,在eclipse控制台中没有错误。
谢谢你的帮助,随时可以要求一切
答案 0 :(得分:1)
您的DTO是否具有零参数的构造函数?可见性不重要? 如果没有零参数构造函数,您的调用将失败。
您的DTO是否在共享包中?如果要在服务器和客户端使用DTO,则必须使用共享包。
将日志级别更改为TRACE以获取服务器日志中的更多信息。