Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / клент вебсервиса / 10 сообщений из 10, страница 1 из 1
27.08.2007, 15:19:07
    #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
27.08.2007, 16:13:08
    #34755438
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
клент вебсервиса
Если это действительно SOAP Web Service, то как ваш запрос так и ответ должны быть обернуты в SOAP Envelop. Иначе это просто собственный XML протокол поверх HTTP, но никак не Web Service.

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

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

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


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