沿着类似的路线有几个问题,但没有一个明确地回答这个问题。
我使用wsimport
从.wsdl文件(Onvif's wsdl files)生成代码。正在运行
wsimport -keep https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl -extension -Xnocompile
输出
At least one WSDL with at least one service definition needs to be provided.
基于this SO answer我添加了此服务声明,在本地下载了onvif.xsd
和common.xsd
,修改了为这些Onvif文件指定的路径,然后生成了代码。
是否有更简单的方法在每个Onvif网址上运行wsimport
命令?有超过20个wsdl文件,我觉得手动下载很傻,然后在每个文件中进行上述更改才能运行wsimport
。
答案 0 :(得分:2)
您应该在WSDL
文件中进行这些更改:
在第11行添加name="DeviceService"
,以<wsdl:definitions...
添加
<wsdl:service name="DeviceService">
<wsdl:port name="DevicePort" binding="tds:DeviceBinding">
<soap:address location="http://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl"/>
</wsdl:port>
</wsdl:service>
在</wsdl:binding>
然后运行生成命令。