从Onvif .wsdl生成.java文件

3
我写了一个与摄像头配合工作的Java应用程序。我从onvif网站devicemgmt.wsdl获取文件,并使用wsimport.exe生成.java文件。它运行良好,但对我来说方法不够。我需要从相机接收事件,如运动检测或按钮闭合触点。我尝试使用deviceIOPort作为.wsdl文件。
注意:我在我的.wsdl文件中添加了这个service
   <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和添加自定义方法?
附:如果您发现错误,请告诉我,我仍在学习英语。
1个回答

1
<wsdl:binding>之后,我添加了文件deviceIOPort.wsdl的以下内容:
   <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.org通过wget下载了所有onvif文件规范并使用它。如果您想单独下载文件,然后再使用它,您需要在<import> location 属性中进行更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接