Как создать классы Java из файла WSDL - PullRequest
25 голосов
/ 03 августа 2011

Я работаю над приложением для Android.Мне нужно использовать веб-сервис.У меня есть файл WSDL, но я хочу преобразовать его в Java, чтобы я мог использовать его функции в моих программах Java.Есть ли способ конвертировать файл wsdl в Java?

Ответы [ 8 ]

26 голосов
/ 03 августа 2011

Да, вы можете использовать:

Плагин Wsdl2java eclipse

С этим все, что вам нужно, это предоставить wsdl, и клиент, который является классами Java, будет автоматически сгенерирован для вас.

12 голосов
/ 09 мая 2012

Просто чтобы сгенерировать Java-классы из wsdl для меня лучшим инструментом является "cxf wsdl2java".Это довольно просто и удобно.Я нашел некоторые сложности с некоторым типом данных в axis2.Но, к сожалению, вы не можете использовать этот код клиента-заглушки в своем приложении для Android, потому что среда Android не позволяет имени пакета «java / javax» во время компиляции, если вы не переименуете имя пакета.

А в android.jar все источники javax. * Для использования веб-служб недоступны.Для решения этой проблемы я разработал WS Client Generation Tool для Android.

В фоновом режиме он использует "cxf wsdl2java" для создания заглушки клиента Java для платформы Android для вас, и я написалнекоторые источники используют веб-сервис более разумно.

Просто укажите местоположение файла wsdl, которое даст вам источники и некоторую библиотеку.Вы должны просто поместить источники и библиотеки в ваш проект.и вы можете просто вызвать его как «метод вызова метода», как мы делаем в нашем корпоративном проекте, вам не нужно знать действие пространства имен / мыла и т. д. Например, у вас есть сервис для входа в систему, что вам нужно сделатьэто:

LoginService service = new LoginService ( );
Login login = service.getLoginPort ( );
LoginServiceResponse resp = login.login ( "someUser", "somePass" );

И он полностью открыт и свободен.

8 голосов
/ 26 ноября 2013

jdk 6 поставляется с wsimport , который вы можете использовать для создания Java-классов из WSDL. Также создается класс обслуживания.

http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

5 голосов
/ 06 мая 2015

Предполагается, что у вас установлено JAXB Перейдите в следующий каталог C: \ Program Files \ jaxb \ bin откройте командное окно здесь

> xjc -wsdl http://localhost/mywsdl/MyDWsdl.wsdl C: \ Users \ myname \ Desktop

C: \ Users \ myname \ Desktop - это выходная папка, которую вы можете изменить по своему вкусу

http://localhost/mywsdl/MyDWsdl.wsdl - ссылка на WSDL

5 голосов
/ 29 января 2013

я создал отличный инструмент для автоматического разбора и подключения к веб-сервисам

http://www.wsdl2code.com

http://www.wsdl2code.com/pages/Example.aspx

 SampleService srv1 = new SampleService();
     req = new Request();                     
     req.companyId = "1";
     req.userName = "userName";                                     
     req.password = "pas";
     Response response =    srv1.ServiceSample(req);
4 голосов
/ 03 августа 2011

Вы можете использовать плагин eclipse, как предлагал Оскар ранее. Или, если вы человек из командной строки, вы можете использовать Apache Axis WSDL2Java из командной строки. Вы можете найти более подробную информацию здесь http://axis.apache.org/axis/java/reference.html#WSDL2JavaReference

2 голосов
/ 13 ноября 2013

У меня довольно сложный веб-сервис WCF, и я пробовал несколько разных инструментов, но в большинстве случаев я не мог подключиться к своему веб-сервису. Наконец я использовал это:

http://easywsdl.com/

Это только один инструмент, который генерирует классы, которые работают без ЛЮБЫХ изменений!

2 голосов
/ 03 августа 2011

Вы можете использовать WSDL2JAVA Codegen (или) Вы можете просто использовать мастер ' Web Service / WebServiceClient ', доступный в Eclipse IDE. Откройте IDE и нажмите «Ctrl + N», выберите « Web Service / WebServiceClient », укажите URL-адрес wsdl, папку для вывода и выберите «Finish».

Создает полные исходные файлы, которые вам понадобятся.

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