我在一个项目中使用树脂。到目前为止一切顺利,除了一个小问题?
我创建了一个泛型方法,它接受任何Object作为唯一的参数,但当我调用该方法时,它会查找方法名,但使用不同的参数类型,当然是传递的对象类型。
我不确定树脂或任何其他应用服务器实际上可以做到这一点,还是我在这里犯了一个错误?
我正在用Objective-j/Cappuccino开发前端,并通过CP2JavaWS映射远程Java方法。
基本上在Objective-J中,我这样声明:
-(CPString) updateQuote:(id)modifiedQuote
{}
我不需要实现它,只需要声明它。
然后在我的WebApp中,我声明并实现这样的方法:
public String updateQuote(Object modifiedQuote)
{
// implementation
}
然后在前端我像这样调用这个方法:
[DBManagerRemoteService updateQuote:aObject delegateRespHandler:@selector(success:) delegateFailHandler:@selector(failed:)];
问题是aObject是CYQuote类的一个实例,所以当我调用远程方法时,它似乎不是在寻找updateObject(java.lang.Object)
,而是在寻找没有声明或实现的updateObject(com.myApp.services.CYQuote)
。当然,我可以为每个类实现一个方法,但我的目标是创建一个通用的更新方法。
我必须回答自己,并为我无意义的问题给您带来的不便道歉。这个问题与Resin或任何Web应用服务器无关。CP2JavaWS基于传递的对象创建Http请求,所以我修改它以接受一些额外的参数。