powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / клент вебсервиса
10 сообщений из 10, страница 1 из 1
клент вебсервиса
    #34755151
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа.
Подскажите плиз.
На стороне вебсайта крутится вебсервис.
На чем он написан я не знаю.
Имею только некоторое описание request в таком виде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<xs:schema>
  <xs:element name="vacs">
    <xs:element name="vac" maxOccurs="unbounded">
      <xs:complexType>
        <xs:sequence>
            <xs:element name="coun" type="xs:string"/>
            <xs:element name="customername" type="xs:string"/>
            <xs:element name="customerinformation" type="xs:string" minOccurs="0"/>
            <xs:element name="affiliate" type="xs:string"/>
...................

и response

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<vacResponse>
  < new > 0 </ new >
  <updated> 0 </updated>
  <failed> 1 </failed>
  <errors>
    <error>
      <vacID> 1 </vacID>
      <msg>Database error </msg>
    </error>
  </errors>
</vacResponse>

В реквесте отправляется информация для опубликования вакансий на сайте, а в респонсе получаем ответ опубликовано ли оно заново, проапдейчено или не получилось и почему.
И у меня есть код, который в принципе работает.
Код: 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.
 public   class  ServiceTest
{
     public   static   final  SimpleDateFormat TIME_FORMAT =  new 
            SimpleDateFormat("ddMMyyyy.HHmmssSSS");

     public   static   void  main(String[] args)  throws  Exception
    {
         try 
        {

            URL url =  new  URL("http://website/parseVac");
            URLConnection connection = url.openConnection();
            HttpURLConnection httpConn = (HttpURLConnection) connection;
            Date curDate =  new  Date();

            String xml = readFileAsString("VacRequest03.xml");
             byte [] xmlBytes = xml.getBytes();

            // Set the appropriate HTTP parameters.
            httpConn.setRequestProperty("Content-Length", String.valueOf(xmlBytes.length));
            httpConn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
            httpConn.setRequestMethod("POST");
            httpConn.setDoOutput(true);
            httpConn.setDoInput(true);

            OutputStream out = httpConn.getOutputStream();
            out.write(xmlBytes);
            out.close();
            InputStreamReader isr =  new  InputStreamReader(httpConn.getInputStream());
            BufferedReader in =  new  BufferedReader(isr);

            String inputLine;
            StringBuffer result =  new  StringBuffer();
            FileWriter temp =  new  FileWriter("VacResponse" + TIME_FORMAT.format(curDate) + ".xml");
             while  ((inputLine = in.readLine()) !=  null )
            {
                result.append(inputLine);
                temp.write(inputLine);
            }
            in.close();
            temp.close();
            //
            System.out.println(result.toString());
            System.out.println("Lengte: " + result.length());
        }
         catch  (Exception e)
        {
            System.out.println("Error: " + e);
        }
    }

     private   static  String readFileAsString( final  String fileName)
    {
        File file=  new  File(fileName);
        return   readFileAsString(file);
    }

     private   static  String readFileAsString( final  File anInputFile)
    {
         byte [] theReadStuff =  null ;
         try 
        {
             final  RandomAccessFile theRandomAccessFile =  new  RandomAccessFile(anInputFile, "rw"); // "rws", "rwd"
            theReadStuff =  new   byte [( int ) theRandomAccessFile.length()];
            theRandomAccessFile.readFully(theReadStuff,  0 , ( int ) theRandomAccessFile.length());
            theRandomAccessFile.close();
        }
         catch  (Exception e)
        {
            e.printStackTrace();
        }
         return   new  String(theReadStuff);
    }


}

Вопрос.
мне достаточно повесить на определенную кнопку вот такого клиента и сделал парсинг полученного ответа ( у меня тоже веб приложение на JSF-Hibernate).
Но я не уверен, что это правильный подход, а опыта работы с вебсервисами почти нет. Вероятно это слишком простой клиент и надо использовать какой-то фреймворк типа xfire. Короче, не будет ли использование такого простого клиента в реальной системе дилетанством, или для клиента надо все же тоже использовать какой-то фреймворк?
Спасибо.
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755438
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это действительно SOAP Web Service, то как ваш запрос так и ответ должны быть обернуты в SOAP Envelop. Иначе это просто собственный XML протокол поверх HTTP, но никак не Web Service.

Если там действительно SOAP, то для клиентского кода удобно использовать saaj или axis. Зависит от того в каком виде нужен результат. С Axis надо будет сгенерить клиента по WSDL, а saaj выдаст результат в виде XML DOM
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755542
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2oson
оффтоп
Ты в Таллинне работаешь Java программистом? Если да, то сколько платят? Я сам из Эстонии и если там реально Java программисту получать 20 тыс. крон, то подумаю о возвращении на родину.
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755562
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, я не в самой Эстонии сейчас работаю.
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755584
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем как я понял если разработчик вебсервиса прислал мне такой XML файл с описанием щапроса и ответа - то там "просто собственный XML протокол поверх HTTP, но никак не Web Service". И следовательно мне надопросто сгенерить такой XML запрос и пропарсить XML ответ?
Правильно я понял?

А в чем собственно разница между таким простым XML поверх HTML и SOAP вебсервисом?
:)
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755634
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonА в чем собственно разница между таким простым XML поверх HTML и SOAP вебсервисом?
:)
Поверх HTTP, а не HTML. С таким вопросом лучше всего на w3c.org. Аттачменты, единообразное описание, такие понятия как "операция", поддержка разными протоколами и многое многое другое.
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755665
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz osonА в чем собственно разница между таким простым XML поверх HTML и SOAP вебсервисом?
:)
Поверх HTTP, а не HTML. С таким вопросом лучше всего на w3c.org. Аттачменты, единообразное описание, такие понятия как "операция", поддержка разными протоколами и многое многое другое.
вобщем, стандарт.
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755792
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessenвобщем, стандарт.
Ну, "стандарт", это далеко не всегда плюс.
...
Рейтинг: 0 / 0
клент вебсервиса
    #34755859
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz wessenвобщем, стандарт.
Ну, "стандарт", это далеко не всегда плюс.
ну тык :) твое отношение к стандартам всем уже тут известно :))

кстати, если бы разговор шел о настоящем веб сервисе, то автору топика прислали бы WSDL и схему и он бы без всяких вопросов натравил бы на это дело к примеру аксис и получил бы готовый код по доступу и разгребанию ответа и пил бы уже пиво.
...
Рейтинг: 0 / 0
клент вебсервиса
    #34758670
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа.
Дайте ссылочку на быстрый понятный туториалс с примером и без заморочек.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / клент вебсервиса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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