Генерация.java из onvif .wsdl
Я пишу Java-приложение, которое работает с камерой. Я получаю файлы с сайта onvif devicemgmt.wsdl и генерирую файлы.java, используя wsimport.exe. Это работает хорошо, но у меня недостаточно методов для меня. Мне нужно получать события от камеры, такие как обнаружение движения или замыкание контактов кнопки. Я пытался использовать deviceIOPort как файл.wsdl.
Одно замечание: я добавил в свой файл.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
и добавить пользовательские методы одновременно.
PS если вы обнаружите ошибки пришлите мне, я все еще учу английский
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>
новые методы были добавлены и работали хорошо для меня.
И еще одно замечание: я просто скачиваю с http://www.onvif.org/ по wget все спецификации файлов onvif и использую его. Если вы хотите скачать файлы отдельно, а затем использовать его, вы должны изменить в <import>
location
приписывать.