размещение XML-данных из Java на рельсы (служба restful) - PullRequest
1 голос
/ 24 февраля 2010

Я пытаюсь опубликовать XML-документ из Java в приложении rails. Мне трудно писать http запрос Вот мой код Java:

        Socket sock = new Socket(addr, port);
        String path = "http://127.0.0.1:3000/mycontrollers.xml";
        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream(), "UTF-8"));
        wr.write("POST +path+ " HTTP/1.0\r\n");
        wr.write("Host: http://127.0.0.1:3000\r\n");
        wr.write("Content-Length: " + xmldata.length() + "\r\n");
        wr.write("Content-Type: text/xml; charset=\"utf-8\"\r\n");
        wr.write("\r\n");
        //Send data
        wr.write(xmldata);
        wr.flush();

В ответ у меня есть: Не найдено: /mycontrollers.xml

Есть идеи?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 26 февраля 2010

Из-за ошибки вы видите, что у вас нет настройки маршрутизации для обработки /mycontrollers.xml в вашем приложении Rails. Вы используете помощников ресурса или определили собственный маршрут?

Если вы определили свой собственный маршрут, вам нужно добавить .:format к маршруту, чтобы Rails мог подобрать тип контента из URL.

Другой альтернативой может быть отправка заголовка Accept в вашем POST и отправка его на /mycontrollers вместо /mycontrollers.xml.

0 голосов
/ 24 февраля 2010

Почему бы не использовать уже реализованные решения из caucho: hessian или burlap library? Это доступно для ruby ​​и java.

А вы пытались опубликовать xml с помощью более простых инструментов (например, плагин Firefox)?

Я думаю, вам нужно будет реализовать рельсовую сторону и для вашей работы. (Я знаю, что можно легко получить XML с рельсов, но не наоборот)

...