0

我正在尝试使用 ActiveResource 在 Rails 应用程序中使用 RESTful WCF 服务。

我的 ActiveResource 类是:

class PartReferenceService < ActiveResource::Base
    self.site = "http://localhost:1234/"
end

WCF URL 是

http://localhost:1234/PartReferenceService.svc/ 

它返回 XML 如下:

<ArrayOfReferenceDataModel xmlns="http://schemas.datacontract.org/2004/07/RemoteService.Model" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
 <ReferenceDataModel>
  <Description>0460-0054</Description> 
  <Id>147</Id> 
  </ReferenceDataModel>
 <ReferenceDataModel>
  <Description>0960-0095</Description> 
  <Id>145</Id> 
  </ReferenceDataModel>
</ArrayOfReferenceDataModel>

当我这样做时,我得到了 404:

PartReferenceService.find(:all)

我也找不到在我的 development.log 文件中请求的 URL。

关于我可能出错的地方有什么建议吗?我对 ActiveResource 和 WCF 还很陌生,但我的猜测是 ActiveResource 正在创建一个类似的 url,

http://localhost:1234/part_reference_service/ 

但由于我在日志中看不到任何东西,所以我瞎了眼。

我可以控制两端,因此可以进行任何需要的更改。

任何帮助深表感谢。

4

2 回答 2

0

使用Fiddler可以准确查看 http 请求中发生了什么。

于 2009-06-24T12:47:21.267 回答
0

使用 ActiveResource 的第一件事 - 始终设置 ActiveResource::Base.logger。通常我只是在配置块之后在我的 environment.rb 中执行 ActiveResource::Base.logger = ActiveResource::Base.logger 。

ActiveResource 的第二件事 - 它是一个非常糟糕的库,尤其是与 HTTP over XML api 一起使用,而不是 Rails 生成的 API(就像你拥有的 WCF 一样)。我推出了自己的解决方案,也许你会喜欢它——它叫做Wrest

于 2010-02-16T16:56:33.320 回答