WSDL не генерирует код-заглушку для Android (devicemgmt.wsdl)

Какие действия воспроизведут проблему?

Установите eclipse adt, java jdk и maven

1. Имейте pom.xml

2. Иметь onvif.xsd

3. Иметь файл devicemgmt.wsdl

4. Объявите переменные окружения для java JDK (JAVA_HOME), Maven (M2_HOME) и для sdk (ANDROID_HOME)

5. Создайте папку WSDL в eclipse (в проекте приложения для Android) и поместите внутрь файл onvif.xsd и devicemgmt.wsdl. В конце файла Dwvicemgmt.wsdl указан IP-адрес. soap:адрес location="http://59.124.49.22:8083/onvif/device_service"

6.В CMD перейдите в папку проекта и запустите команду mvn generate-sources eclipse:eclipse

Проект и pom.xml, devicemgmt.wsdl и onvif.xsd находятся по этой ссылке: https://www.dropbox.com/s/xd8byoh9ebqoiuv/devicemgmt.rar?

Каков ожидаемый результат? Что ты видишь вместо этого? Ожидается, что команда mvn generate-sources eclipse:eclipse сгенерирует некоторый код в папке, описанной в pom.xml (папка TARGET).

Какую версию продукта вы используете? На какой операционной системе? Windows 7 32-битный jdk 1.6.0.45 maven 3.0.5-бин

Пожалуйста, укажите дополнительную информацию здесь.

Я следовал этому руководству (https://code.google.com/p/android-soap-enabler/wiki/FiveMinutesTutorial), но с другим .wsdl, и я поместил все банки, которые нужны eclipse. У меня также есть проблема, когда я обновляю проект после запуска mvn generate-sources eclipse:eclipse, /gen уже существует, но не является исходной папкой. Преобразуйте в исходную папку или переименуйте ее.

Я попытался запустить с tempconvert.wsdl, и все работает нормально, но с devicemgmt.wsdl ничего не генерируется.


person Bruno Melhôr    schedule 03.06.2013    source источник


Ответы (1)


См. здесь: http://www.coderanch.com/t/562144/Web-Services/java/Generating-client-code-wsdl-file

Вы можете сгенерировать код заглушки службы, например, с помощью wsimport из $JDK/bin - с этим вы сможете увидеть больше ошибок.

но я предполагаю, что ваша проблема в том, что devicemgmt.wsdl не содержит самого объявления службы, поэтому перед созданием заглушек вы должны положить конец этого wsdl примерно так:

<wsdl:service name="DeviceService">  
            <wsdl:port name="DevicePort" binding="tds:DeviceBinding">  
                <soap:address location="http://localhost/onvif/device_service"/>  
            </wsdl:port>  
</wsdl:service>  
person Kovács Ede    schedule 01.08.2013