2015-09-10 3 views
2

Я пишу приложение Java, которое работает с камерой. Я получаю файлы с сайта onvif devicemgmt.wsdl и создаю файлы .java с помощью wsimport.exe. Он работает хорошо, но у меня недостаточно методов для меня. Мне нужно получать события от камеры, такие как обнаружение движения или закрытие контактов кнопки. Я попытался использовать deviceIOPort как .wsdl-файл.
Одно примечание: Я добавил к моему .wsdl файл этот сервис:Создание .java из onvif .wsdl

<wsdl:service name="DeviceService"> 
     <wsdl:port name="DevicePort" binding="tds:DeviceBinding"> 
      <soap:address location="http://ip/onvif/device_service"/> 
     </wsdl:port> 
    </wsdl:service> 

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

Для создания Java-файлов, я использую команду:

wsimport -d where_to_place_generated_files ..\deviceIOBinding.wsdl -keep -Xnocompile -verbose > ..\log.txt 

Как я могу использовать deviceIOPort и добавлять собственные методы в то же время.

P.S. если вы нашли ошибки, отправьте его мне, я все еще учусь английский

ответ

1

После того, как я добавил в файл deviceIOPort.wsdl после <wsdl:binding> этого: были добавлены

<wsdl:service name="DeviceService"> 
     <wsdl:port name="DeviceIOPort" binding="tmd:DeviceIOBinding"> 
      <soap:address location="http://ip/onvif/device_service"/> 
     </wsdl:port> 
     <wsdl:port name="MediaPort" binding="trt:MediaBinding"> 
      <soap:address location="http://ip/onvif/device_service"/> 
     </wsdl:port> 
     <wsdl:port name="DevicePort" binding="tds:DeviceBinding"> 
      <soap:address location="http://ip/onvif/device_service"/> 
     </wsdl:port> 
    </wsdl:service> 

новые методы и работал хорошо для меня.

И одно примечание: я просто скачаю с www.onvif.orgwget все файлы с файлами onvif и используйте его. Если вы хотите загрузить файлы по отдельности, а затем использовать его, вы должны изменить в атрибуте <import>location.

Смежные вопросы