本文旨在详细的描述如何生生ONVIF 框架和最近ONVIF官网更新后无法在线生成https/ssl/tls错误的解决办法!
首先框架生成需要GSOAP,至于怎么下载,详细过程便不再描述:建议在阅读本文章之前,先通读一遍如下文档,不需要上手操做,但是新手们,提前了解一部分,很有必要!
开发框架生成:http://blog.csdn.net/lvwx369/article/details/39551659
还是框架生成:http://blog.csdn.net/saloon_yuan/article/details/24901597
PS:当初我框架生成,便是这2篇文档带路,不过是在线生成,困于网络,倒是搞了好几天!
最近涉及到项目有一些修改,要求使用最新的ONVIF框架,结果不小心编译的时候,出现HTTPS/SSL之类的错误,起初被忽悠是gsoap的问题,还傻兮兮的编译了一遍gsoap,哎,心累!具体的解决办法后面会描述!
gsoap命令行:http://www.cnblogs.com/hgwang/p/5840265.html
onvif 官网wsdl下载地址:https://www.onvif.org/profiles/specifications/
下载带.wsdl和xsd的文件,保存到本地!
把所有下载gsoap 和wsdl放到一个文件夹,还有这个目录\gsoap-2.8\gsoap\bin\win32下的也拷到一起,额,还有typemap.dat,也放到一起然后
。。。。。。忘了之前的博客说的文件目录撒的,妥妥的!
注意了哦:开始干活了,准备工作已搞定!
Cmd 进入到刚才存放文件的目录 运行wsdl2.exe -o onvif.h -s -t typemap.dat accesscontrol.wsdlaccessrules.wsdl actionengine.wsdl advancedsecurity.wsdl analytics.wsdlanalyticsdevice.wsdl credential.wsdl deviceio.wsdl devicemgmt.wsdl display.wsdldoorcontrol.wsdl event.wsdl imaging.wsdl media.wsdl media2.wsdlprovisioning.wsdl ptz.wsdl receiver.wsdl recording.wsdl replay.wsdlschedule.wsdl search.wsdl thermal.wsdl
PS:具体命令自己看 GSOAP 工具那个连接,根据需求自己输入命令
然后:。。。。。。。。。就出错了,没毛病
意思是在读取actionengne.wsdl的时候找不到onvif.xsd,所有我们用记事本打开这个wsdl,
诺,路径他使用的../ver10/schema/onvif.xsd" 想想我们的放哪儿了!同级目录,那就改改呗,
改完后在生成一次!又出现了另外一个WSDL找不到XSD的问题,那就在改呗!改到没错为止!!!
好了,开始了,出现ssl/tsl 之类的错误了仔细读一下!
然后打开WSDL看看,
所以,有人懂了没?这里的onvif.xsd使用的是HTTP连接,想到https那个问题了没?在http连接不上的时候,会使用https来进行连接,所以ssl的错误就这么出来了,既然找到问题了,解决办法也就有了:就是按照上面的,将wsdl里面的路径改成本地,在线生成方式,那就去官网找到xsd那个文件,把地址获取,替换到WSDL;估计是之前ONVIF官网在进行改版的时候,对地址做了修改,导致现在http连接不上,就出现连接https导致ssl之类的错误!然后就是改啊改,比竟一堆!
所以,终于搞定了
然后在ONVIF.H里,添加一句#import“wsse.h”用于鉴权!大概在100行左右
然后执行如下命令,具体命令还是看gsoap哪个连接下的博客,此处不详述!!!
soapcpp2 -2 onvif.h –j –x –L –I ./gsoap_2.8/gsoap/import –I gsoap-2.8/gsoap
直到出现如下界面,好了,ONVIF 开发框架生成完成!
至于该如何整理生成的文件,包括鉴权所需的一些头文件,这些网上基本都能搜索到,多看看也就理解了!
开发方面的问题,欢迎加入QQ群:465200732一起交流,资源共享!
注:转载请注明出处,谢谢