调用以Java .lang. object作为Resin参数的远程Java方法



我在一个项目中使用树脂。到目前为止一切顺利,除了一个小问题?

我创建了一个泛型方法,它接受任何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请求,所以我修改它以接受一些额外的参数。

最新更新