Создайте клиент веб-службы в JAVA для доступа к методу из WSDL (w.Eclipse) - PullRequest
0 голосов
/ 19 октября 2011

Абсолютно новая пчела в веб-сервисах.

У меня есть URL как:

http://abc.xyz.com/straw/api/?wsdl  

и метод:

$result= $client->call($session, "catalog_product.list");   

Вот что я пробовал:

  1. Создан новый проект JAVA из мастера Eclipse.

  2. r Нажмите на проект, перейдите к веб-сервису -> клиент веб-сервиса.

  3. Дайте определение услуги http://abc.xyz.com/straw/api/?wsdl

  4. в конфигурации:

    • (a) время выполнения сервера: сервер tomcat v7.0
    • (b) среда выполнения веб-службы: ось Apache
  5. Выберите тестовый клиент из ползунка ( Я также пытался разработать клиент немного запутанно, так как я должен создать клиента очень запутанным )

  6. Нажмите на финиш.

В результате я нашел тестовый клиентский веб-сервис с некоторым методом, входом и результатом. Также я получил некоторый файл JAVA в моей папке ресурсов:

Mage_Api_Model_Server_HandlerBindingStub  
Mage_Api_Model_Server_HandlerPortType  
Mage_Api_Model_Server_HandlerPortTypeProxy  
MagentoService  
MagentoServiceLocator

Эти исходные файлы создаются клиентом?

Я не могу найти имя метода ...

$result= $client->call($session, "catalog_product.list");

... в любом из указанных выше файлов JAVA.

Что мне нужно сделать, чтобы создать клиент веб-службы ???

Что ожидается от меня как результат (эти файлы JAVA находятся в исходной папке).

Или мне нужно написать проект JAVA для доступа к методу веб-службы

$result= $client->call($session, "catalog_product.list");

Как этот учебник:

Каков мой результат для "создать клиент веб-службы для доступа к методу, указанному ниже wsdl."

Извините за мою глупость, потому что я даже не знаю, что выводить / доставлять.

Любое руководство? Спасибо!

1 Ответ

1 голос
/ 19 октября 2011

Да, на самом деле вы сказали Eclipse, что вы хотите создать все необходимые классы, чтобы вы могли выполнять клиентские вызовы веб-службы из Java. Теперь я попытался сделать то же самое, что и вы, чтобы увидеть, что генерирует Eclipse, но, к сожалению (по крайней мере для меня), адрес wsdl, который вы дали, не работает. Однако я попытался сделать это с другим wsdl и получил несколько похожих файлов, сгенерированных Eclipse.

В основном Eclipse делает:

  • создает классовые модели, которые представляют данные (XML), передаваемые между клиентом и сервером, когда вы совершаете вызов веб-службы с использованием сгенерированного клиента. Эти классы, в вашем случае, являются простыми Java-бинами (в этом контексте они имеют базовые имена без каких-либо суффиксов, таких как _HanddlerXXX или «Service» (я думаю, что вы не перечислили их здесь или Сервис очень прост и использует классы JDK в качестве классов моделей, таких как String, Integer и т. д.).
  • он также создает интерфейс Java, представляющий конечную точку операций веб-службы, объявленную в WSDL: это будет «MagentoService», у которого есть методы, соответствующие конечной точке операций веб-службы (они возвращают объекты, представляющие эти конечные точки
  • наконец, «Mage_Api_Model_Server_HandlerPortType» представляет конечную точку веб-службы, и она предлагает методы, соответствующие операциям этой конечной точки. Этот интерфейс вы должны реализовать с желаемой логикой и использовать эту реализацию для фактической отправки запроса на ваш веб-сервис

Теперь здесь есть много веб-сервисов и жаргона SOAP, не говоря уже о довольно сложной среде для работы с веб-сервисами в Java, а именно Axis. Я действительно рекомендую прочитать (по крайней мере, первые 2 главы) следующую книгу:

http://www.amazon.fr/Developing-Web-Services-Apache-Axis2/dp/0557254329/ref=sr_1_1?ie=UTF8&qid=1319032081&sr=8-1

отлично подходит для ознакомления с основными понятиями веб-сервисов мыла и отдыха, в нем есть отличные примеры от базового до сложного о том, как реализовать эти понятия в Java с помощью CXF и Axis2, и как это сделать с помощью Eclipse, это просто отличная книга для начинающих о том, что вы здесь делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...