powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите с веб-сервисом
21 сообщений из 21, страница 1 из 1
Помогите с веб-сервисом
    #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
Помогите с веб-сервисом
    #33821641
Фотография MalkoLinge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читать про сокеты. тада как хочешь так и пошлешь %)
WBR,
Malkolinge
...
Рейтинг: 0 / 0
Помогите с веб-сервисом
    #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
Помогите с веб-сервисом
    #33823417
Морфий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за пример.

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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