Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.65
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
#1

Вопрос знатокам вебсервисов - Java

14.06.2010, 02:13. Просмотров 2574. Ответов 21
Метки нет (Все метки)

Вот работаю с JWSDP (для тех кто не в курсе это такая бесплатная поделка от SUN на тему вебсервисов). Версия 1.3. Ну вот сделал я вебсервис JAX-RPC стиль. Задеплоил его. WSDL создался. Теперь делаю клиента. Книжка и документация советует мне создовать клиента на базе имеющегося класа и интерфейса который я деплоил на сервер , также надо включить в client stub ещё и сам интерфейсы и классы которые использовались на сервере как параметры. Но постойте - вебсервисы же у нас как бы платформо независимые и я никому нехочу показывать сами свои интерфейсы и уж тем более классы которые я передаю как параметры. То есть у меня нет ни класа не интерфейса. А есть только WSDL. Что мне делать тогда ? Мне кажется что я либо что то не понял или SUN как то нитак понимает идею вебсервисов. Может кто нибудь скажет что мне делать что бы создать Java code на основе только WSDL файла ? Потому что мне весь этот JWSDP очень напоминает Java PetStore который Sun сделал левой пяткой, а потом микрософт над этим петстором жестоко глумилась сравнивая её с аналогичной реализацией на .NET.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2010, 02:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вопрос знатокам вебсервисов (Java):

Вопрошение знатокам стримов
Есть коллекция объектов, не могу сообразить как, используя стрим, произвести...

Знатокам Apache httpclient. proxy
Задача проста: отправить post запрос на какой-либо сайт через прокси с...

Вопрос к знатокам ассемблера
Изучаю naken430asm. Мигаю светодиодами на лаунчпаде и всё такое. Наткнулся на...

Простой вопрос к знатокам С++ и VB ?
pEvent->SetNotifyWindow((OAHWND)g_hwnd, WM_GRAPHNOTIFY, 0); равно Call...

Вопрос знатокам Altiuma
К примеру, есть схема, в которой раньше использовался один MOSFET, а сейчас...

Вопрос знатокам по Richtext
Добрый день. Подскажите, если кто-нибудь знает. У поля RichText на первой...

21
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
14.06.2010, 04:04  [ТС] #2
Не вроде можно и с одним WSDL генерировать. Только по желанию интерфейс надо. Так что насчёт сана был неправ.
0
mselez
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
14.06.2010, 17:48 #3
Поделитесь, для тех кто не в курсе. Клиент вебсервиса - это джава приложение, любое приложение или браузер?
0
mr_dronski
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
14.06.2010, 18:08 #4
это любое приложение, которое может при этом быть браузером.
0
mr_dronski
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
14.06.2010, 18:09 #5
в смысле, иметь веб-интерфейс
0
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
14.06.2010, 18:11  [ТС] #6
Вообще конечно любое. В этом весь и прикол. У вас есть WSDL файл в котором описан метод который надо вызывать. Вообще там много всякой лабуды которая мне пока не понятно, но концептуально там описано имя класса и имена методов + список параметров. Также описаны типы параметров переведённые в какие то простые типы (можно конечно делать и сложные, но они в конечном итоге состоят из простых) Ну вот этот WSDL файл обрабатывается специальной програмкой типа кодагериратора и на основании его создаются классы или библиотеки для конкретной платформы. Говорят лучше всего это работает на .NET на яве тоже неплохо если использовать какую то крутую среду разработки или уже отлаженые ANT скрипты. А для всех остальных (бедных родственников) существует JWSDP от SUN который в общем то не сильно то логично сделан.
0
mr_dronski
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
14.06.2010, 19:13 #7
читая ваш пост, можно подумать, что у явы проблемы с ВС. это совершенно не так. а если хочется качественно и бесплатно, а не что-то более учебное - то попробуйте хотя бы Apache AXIS. я уже не говорю о GLUE и куче других коммерческих продуктов.
0
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
14.06.2010, 19:16  [ТС] #8
На theserverside.com про AXIS отызывы тоже не очень лестные
0
mr_dronski
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
14.06.2010, 19:28 #9
даты отзывов? я говорю про свой практический опыт в коммерческих проектах. а отзываются на theserverside.com разные люди - и настоящие гуру, и откровенные диверсанты, проталкивающие конкретные продукты/технологии и поливающие все остальное грязью.
0
mselez
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
14.06.2010, 19:28 #10
Как браузер может читать этот W.. файл и вызывать методы? Очевидно, в браузере должна бегать какая-то программка?
0
mr_dronski
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
14.06.2010, 19:31 #11
браузер ни при чем. он - всего лишь клиент веб-приложения, бегающего на сервере.
0
mselez
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
14.06.2010, 20:04 #12
ок, значит, клиенты веб-сервисов - другие сервера и веб приложения, а не браузер пользователя.
0
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
15.06.2010, 00:32  [ТС] #13
Ну посмотрел я этот AXIS такой же отстой. Нет насчёт сервис деплоймента нет вопросов. Ребята постарались. Сервис деплоится просто и легко, но клиента создать просто невозможно. Надо мудохаться с ANT.Блин. Ну ладно создал клиента. Этот клиент настолько убогий что по дефолту даже нельзя адрес сервиса поменять. А уж для того что бы сделать проверку имени пользователя и пароля надо лезть глубоко внутрь. Незнаю может кому и кобыла невеста. Но я чесно говоря разочарован.
0
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
15.06.2010, 00:56  [ТС] #14
Хотя вру, можно всё поменять. Это я не туда смотрел.
0
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
15.06.2010, 04:19  [ТС] #15
Нет это просто ужасно. Это вообще в принципе возможно, передавать в AXIS вебсервис что нибудь сложнее чем String. Я передаю агрегатный тип. Она выдаёт ошибку. У меня ощущение что java умирает. Кто видел как генерировать вебсервис на .NET тот поймёт. Такого ужаса я не видел давно. ПОнимаю что надо быть осторожным в высказываниях. Я буду счастлив если меня кто то разубедит и докажет что я лох, а они там правы. Но я облазил интернет через гугл. И не нашёл никакого простого решения. Можно сначала написать джава код потом сделать из него WSDL потом из WSDL сделать java code обратно вместе с сериализаторами (но тогда это сотрёт начальный код). Ок, а потом скомпилировать опять и задеплоить. Но это же закат солнца в ручную.
Кликните здесь для просмотра всего текста
faultString: org.xml.sax.SAXException: Deserializing parameter 'in0': could not find deserializer for type {http://service.mpas.mycompany.com}Packet


TCPMON показывает что ошибка на стороне сервера

HTTP/1.1 500 Internal Server Error

Content-Type: text/xml;charset=utf-8

Date: Wed, 07 Apr 2004 00:30:28 GMT

Server: Apache-Coyote/1.1

Connection: close


XML
1
2
3
4
5
6
7
8
9
10
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>soapenv:Server.userException</faultcode>
   <faultstring>org.xml.sax.SAXException: Deserializing parameter &apos;in0&apos;:  could not find deserializer for type {http://service.mpas.mycompany.com}Packet</faultstring>
   <detail/>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>
0
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
15.06.2010, 04:21  [ТС] #16
А ещё есть идиотическая идея - вручную прописывать маппинг
<beanMapping qname='myNS:Order' xmlns:myNS='urn:BeanService' languageSpecificType='java:samples.userguide.example5.Order'/>
http://cvs.apache.org/viewcvs.cgi/ws-axis/java/samples/userguide/example5/deploy.wsdd?rev=1.5&view=markup

Так в таком случае проще через сокет строки гонять уже. Нафига мне эти вебсервисы если они так ужасно настраиваются
0
mr_dronski
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
15.06.2010, 11:01 #17
Вы бы еще сравнили велосипед и тачку на колесах )

Не подходит (не можете разобраться в заданное время) с бесплатным, то покупайте уже готовое решение и кликайте мышкой. А то на ворованном .нете сидят и кричат на бесплатный ява-продукт. Купите что-нибудь уровня CapeClear Studio http://www.capeclear.com/products/studio/index.shtml или WebLogic Platform (где веб-сервисы давно уже интегрированы), а потом говорите, что там вот плохо, а тут хорошо. Недоумеваю просто от таких заключений.
0
mr_dronski
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
15.06.2010, 11:08 #18
раз такая песня, то сравните еще GLUE:

http://www.webmethods.com/solutions/wM_Glue/

богатство выбора, ограниченное только вашей платежеспособностью и ленью
0
simplepilot
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
15.06.2010, 18:15  [ТС] #19
WebLogic и WebSphere уже давно опробованы и к ним притензий нету. Обе работают. Особенно WebLogic. Но вы когда нибудь цены на WebSphere узнавали или WebLogic - советую узнать. Вам многое станет понятней :-)
Что касается платного. То чесно говоря у уже не верю в то что есть что то приличное за разумные деньги. Я тут пробовал http://www.systinet.com/ WASP. Так у них вебсервис деплоится в какой то непонятный , отличный от стандартного war файла, архив. Нет у меня в настоящее время WebLogic. А насчёт передачи AXIS - я готов забрать все свои слова обратно, если вы мне покажете пример с чёткой процедурой деплоймента (ANT script) в котором передаётся какой то агрегатный тип как параметр вебсервиса. Потому что я такого примера не нашёл. Всё остальное - передать строку, получить ответ, ограничить доступ пользователю по паролю (простая проверка) работает. А вот агрегатный тип передать нельзя.
0
mselez
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
15.06.2010, 18:54 #20
все это напоминает проблемы админов (найти, поставить, настроить), а не программистов. Один знакомый рассказывал, что ничего уже не программирует, все в интернете находит .
0
15.06.2010, 18:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2010, 18:54
Привет! Вот еще темы с решениями:

Вопрос знатокам SQL
В базе есть инфа вида: Доход, Месяц. Но не в каждом месяце есть доход. Тогда...

Вопрос к знатокам SQL
Есть таблица - test name id a 1 b 2 c 3 a 0 a 0 b 0 b 0 c 0

Вопрос к знатокам SQL.
Есть таблица поставок поставки:...

Небольшой вопрос к знатокам СPP
Форумчане хелп. Работал с билдером, ща приспичило с winapi поработать. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru