Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите с веб-сервисом / 21 сообщений из 21, страница 1 из 1
29.06.2006, 13:31
    #33821606
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Добрый день.

У меня такая задача.

Посылается xml файл веб-сервису, который возвращает xml файл.

Например посылается

<hello>
<world>Privet</world>
</hello>


а полчается

<hello>
<world>I tebe Privet</world>
</hello>


Необходимо чтобы возвращаемый xml не содержал namespace'ов
Т.е. чтобы не было ответа похожего на

<ex:hello xmlns:ex="http://ex.ex/ex">
<ex:world>I tebe Privet</ex:world>
</ex:hello>



Как такое лучше реализовать?
Axis2, SOAP, XML-RPC??? Что лучше использовать?
...
Рейтинг: 0 / 0
29.06.2006, 13:42
    #33821641
MalkoLinge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
читать про сокеты. тада как хочешь так и пошлешь %)
WBR,
Malkolinge
...
Рейтинг: 0 / 0
29.06.2006, 15:00
    #33821880
mors78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
 import  java.io.*;
 import  javax.servlet.*;
 import  javax.servlet.http.*;
 import  javax.xml.parsers.*;
 import  javax.xml.transform.*;

 import  org.w3c.dom.*;


 public   class  SendXML
     extends  HttpServlet {
   public  SendXML() {
  }
  
   public   void  doPost(HttpServletRequest request, HttpServletResponse response)  throws 
      ServletException, IOException {
    createAnswer(request,response);
  }

   public   void  createAnswer(HttpServletRequest request, HttpServletResponse response)  throws 
      ServletException, IOException {
  //здесь можем разобрать request  и что там с ним пришло      //request.getInputStream()...
 
    Document xmlResult = getXML();
    ByteArrayOutputStream ser = getByteOutputStream(xmlResult);
    response.setContentLength(ser.size());
    DataOutputStream dos =  new  DataOutputStream(response.getOutputStream());
     byte [] buffer = ser.toByteArray();
    dos.write(buffer);
    dos.close();
  }
  
   public  Document getXML() {
    DocumentBuilderFactory docBuidFact = DocumentBuilderFactory.newInstance();
     try  {
      DocumentBuilder documentFactory = docBuidFact.newDocumentBuilder();
      Document outDoc = documentFactory.newDocument();
      Element root = outDoc.createElement("hello");
      outDoc.appendChild(root);
      Element oneMore = createElement(outDoc, "world", "и тебе привет");
      root.appendChild(oneMore);
       return  outDoc;
    }
     catch  (DOMException ex) {
      ex.printStackTrace();
       return   null ;
    }
     catch  (ParserConfigurationException ex) {
       return   null ;
    }
  }
  
   public  Element createElement(Document outDoc,String nameElement,String textElement)  throws  DOMException {
    Element oneMore;
    oneMore = outDoc.createElement(nameElement);
    Text text = outDoc.createTextNode(textElement);
    oneMore.appendChild( text);
     return  oneMore;
  }
  
  
   private  ByteArrayOutputStream getByteOutputStream(Document xmlResult)  throws 
      TransformerFactoryConfigurationError {
    ByteArrayOutputStream ser =  new  ByteArrayOutputStream();
     try  {
      org.apache.xml.serialize.OutputFormat format =
           new  org.apache.xml.serialize.OutputFormat(org.apache.xml.serialize.Method.XML, "Windows-1251", true );
      org.apache.xml.serialize.XMLSerializer serializer =
           new  org.apache.xml.serialize.XMLSerializer(ser,format);
      serializer.serialize(xmlResult);
    }
     catch  (Exception ex1) {
      ex1.printStackTrace();
    }
     return  ser;
  }
  
...
Рейтинг: 0 / 0
30.06.2006, 10:38
    #33823417
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Спасибо за пример.

Т.е. этот сервлет будет веб-сервисом? Мне остаётся написать web.xml и прикрутить это всё на веб-сервер.

А может быть ещё есть пример клиента? Т.е. каким образом можно (лучше это сделать) отослать xml на этот сервлет?

Спасибо.
...
Рейтинг: 0 / 0
30.06.2006, 10:55
    #33823499
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Чтобы самому не парсить XML-запрос и не формировать полностью валидный XML-ответ (в соответветствии со спецификацией SOAP) советую использовать более простой вариант (правда требующий установки библиотеки JAXM):
пример web-сервиса
...
Рейтинг: 0 / 0
30.06.2006, 11:16
    #33823596
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Есть какая-нибудь технология позволяющая сделать на основе xml'я бин.
...
Рейтинг: 0 / 0
30.06.2006, 11:19
    #33823607
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Т.е в веб-сервисе входящий xml преобразовать в бин, выдать его для обработки, а потом обратно вернуть бин веб-сервису , который преобразует его в xml файл и вернёт клиенту.

Как такое хотя бы примерно можно сделать?
...
Рейтинг: 0 / 0
30.06.2006, 11:21
    #33823622
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
java.beans.XMLDecoder
java.beans.XMLEncoder
...
Рейтинг: 0 / 0
30.06.2006, 11:25
    #33823644
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
JAXB
...
Рейтинг: 0 / 0
30.06.2006, 11:34
    #33823686
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
С помощью AXIS2 или XML-RPC это можно сделать? Т.е. написать необходимый веб-сервис?
...
Рейтинг: 0 / 0
30.06.2006, 12:08
    #33823861
Михаил Михайлович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
MalkoLingeчитать про сокеты. тада как хочешь так и пошлешь %)
WBR,
Malkolinge


Мля. человек спросил конкретный вопрос, зачем выпендриваться?
...
Рейтинг: 0 / 0
30.06.2006, 12:53
    #33824037
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
МорфийС помощью AXIS2 или XML-RPC это можно сделать? Т.е. написать необходимый веб-сервис?
Да!
...
Рейтинг: 0 / 0
30.06.2006, 13:01
    #33824070
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Kachalov МорфийС помощью AXIS2 или XML-RPC это можно сделать? Т.е. написать необходимый веб-сервис?
Да!

Кратко и ясно :-)
Спасибо.

Может есть пример хороший?

на http://ws.apache.org/axis2 уже всё облазил и сейчас читаю доки.
...
Рейтинг: 0 / 0
30.06.2006, 14:32
    #33824403
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
МорфийТ.е в веб-сервисе входящий xml преобразовать в бин, выдать его для обработки, а потом обратно вернуть бин веб-сервису , который преобразует его в xml файл и вернёт клиенту.

Как такое хотя бы примерно можно сделать?

Есть отличное средство для этих целей - http://xmlbeans.apache.org. Пользуюсь им на всю катушку и горя не знаю.
...
Рейтинг: 0 / 0
30.06.2006, 16:01
    #33824703
chernolas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Знаешь ... есть классная вещь. Называется SOAP with atachment. Почитай про нее (SOAP 1.2 specification). Либо используя указанный выше SAAJ (API для низкоуровненой работы с SOAP) можешь сам формировать XML запроса и ответа.
...
Рейтинг: 0 / 0
30.06.2006, 16:21
    #33824774
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
Как раз сейчас изучаю
SOAP with Attachments (SwA) with Axis2
и про
XMLBeans

Поправьте меня если у меня ход мыслей не туда куда нужно:

С помощью SwA я отправляю xml'ник сервису, там его разбираю при помощи XMLBeans'ов, далее делаю с бином все что надо, обратно в xml'ник и посылать обратно клинту.
...
Рейтинг: 0 / 0
03.07.2006, 12:35
    #33827141
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
М.Голованов МорфийТ.е в веб-сервисе входящий xml преобразовать в бин, выдать его для обработки, а потом обратно вернуть бин веб-сервису , который преобразует его в xml файл и вернёт клиенту.

Как такое хотя бы примерно можно сделать?

Есть отличное средство для этих целей - http://xmlbeans.apache.org. Пользуюсь им на всю катушку и горя не знаю.

Есть пример класса позволяющего преобразовать xml в xmlbean ?
...
Рейтинг: 0 / 0
03.07.2006, 15:47
    #33827925
chernolas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
ну смотря что тебе нужно. Судя по использованию XMLBeans тебе нужно некий бин гонять туда-сюда.
Тут у тебя два варианта
1) xml, который генерит XMLBeans отправлять в атачменте (самый простой способ)
2) самому укладывать xml, генерируемый XMLBeans в тело SOAP сообщения. Так конечно можно ... но по моему слегка геморойно.

Но в принципе правильной дорогой идете товарищ!
...
Рейтинг: 0 / 0
03.07.2006, 16:02
    #33827990
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
chernolasну смотря что тебе нужно. Судя по использованию XMLBeans тебе нужно некий бин гонять туда-сюда.
Тут у тебя два варианта
1) xml, который генерит XMLBeans отправлять в атачменте (самый простой способ)
2) самому укладывать xml, генерируемый XMLBeans в тело SOAP сообщения. Так конечно можно ... но по моему слегка геморойно.

Но в принципе правильной дорогой идете товарищ!

Скорее первый способ больше подходит.
Т.е. свой xml я отправляю в теле сообщения, а в атачменте ещё отправляю xml, который будет генерить нужный бин? Это если XMLBeans юзать, так?
...
Рейтинг: 0 / 0
03.07.2006, 18:01
    #33828427
chernolyas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
ну да. я это и имел ввиду.
в теле сообщения и тебя идет автоматически сгенеррая информация, а в атачмент ты цепляешь то что XMLBEans сгенерил.
Попробуй. Будут вопросы - пиши
...
Рейтинг: 0 / 0
03.07.2006, 18:22
    #33828500
Морфий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с веб-сервисом
chernolyasну да. я это и имел ввиду.
в теле сообщения и тебя идет автоматически сгенеррая информация, а в атачмент ты цепляешь то что XMLBEans сгенерил.
Попробуй. Будут вопросы - пиши

Спасибо!
Я пока немного другое решение решил попробовать, но думаю вернусь ещё к XMLBeans. Так что вопросы ещё будут :-)

Всем огромное спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите с веб-сервисом / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]