2009-06-24 5 views
0

Я пытаюсь использовать RESTful WCF-службу в приложении Rails с помощью ActiveResource.Использование Restful WCF Service с Ruby ActiveResource

Мой класс ActiveResource является:

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

URL-адрес WCF является

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) 

Я также не могу найти URL-адрес, запрашиваемый в моем файле development.log.

Любые предложения о том, где я могу ошибиться? Я довольно новыми для ActiveResource и WCF по этому вопросу, но я думаю, что ActiveResource создает URL, как,

http://localhost:1234/part_reference_service/ 

, но я ничего не вижу в журналах я лечу слепой.

Я контролирую оба конца, поэтому я могу внести необходимые изменения.

Любая помощь очень ценится.

ответ

0

Используйте Fiddler, чтобы увидеть, что именно происходит в http-запросах.

+0

мне удалось получить development.log файл на рельсах приложение из кладя в URL запрошены с использованием: ActiveResource :: Base.logger = ActiveRecord :: Base.logger Если я могу удалить расширение из .xml Я думаю, что я его взломаю. – 2009-06-24 13:13:09

0

Первое, что связано с ActiveResource - alwasy, установить ActiveResource :: Base.logger. Обычно я просто делаю ActiveResource :: Base.logger = ActiveResource :: Base.logger в моей среде.rb после блока конфигурации.

Вторая вещь с ActiveResource - это довольно ужасная библиотека, особенно для использования с HTTP поверх XML api, кроме одного, созданного Rails (например, из WCF, как и у вас). Я развернул собственное решение, возможно, вам понравится - он называется Wrest.

Смежные вопросы