我正在尝试使用gSoap连接到使用https保护的网络服务。但是,当我使用https url运行wsdl2h时,会抛出以下错误:
Cannot connect to https site: no SSL support, please rebuild wsdl2h with SSL or download the files and rerun wsdl2h
我正在构建Fedora Core 14.我使用yum安装了openssl-devel和zlib-devel。我错过了什么?
答案 0 :(得分:2)
默认情况下,wsdl2h是在不支持SSL的情况下构建的。 gsoap发行版的wsdl代码文件夹中的README.txt文件包含以下内容:
使用SSL进行WSDL文件的HTTPS传输
您必须使用' make secure'来构建WSDL解析器。建立一个 支持SSL的wsdl2h版本,可以访问HTTPS安全站点。
如果您没有安装OpenSSL,则无法构建SSL安全 wsdl2h的版本。在这种情况下,我们建议下载WSDL和 用于使用未启用SSL的wsdl2h工具进行处理的模式文件。
因此,您需要手动下载.wsdl文件并在其上运行现有的wsdl2h或使用 make secure 重建wsdl2h,以便它知道包含SSL库和https支持。
答案 1 :(得分:1)
好吧,至少2.8“安全”只是不起作用。 诀窍是将BOTH CFLAGS和CPPFLAGS定义为-DWITH_OPENSSL,并将LDFLAGS定义为-lssl:
CFLAGS='$(CFLAGS) -DWITH_OPENSSL' CXXFLAGS='$(CXXFLAGS) -DWITH_OPENSSL' \
CPPFLAGS='$(CPPFLAGS) -DWITH_OPENSSL' LDFLAGS='$(LDFLAGS) -lssl' ./configure \
--prefix=/usr \
--exec-prefix='$${prefix}' \
--mandir='$${datadir}/man' \
--infodir='$${datadir}/info' \
--enable-ipv6 \
--enable-samples
答案 2 :(得分:0)
我通过使用Visual Studio 2005构建wsdl2h.exe解决了这个问题,并使用我编译的新wsdl2h.exe运行脚本。
gsoap(2.8.17)中的项目位置是“gsoap-2.8.17 \ gsoap \ VisualStudio2005 \ wsdl2h”
我不得不在项目属性的预处理器中添加'WITH_OPENSSL'。 另外,我必须在项目中添加一些include和lib目录以及一些.c文件来解决编译错误。
重点是使用'WITH_OPENSSL'选项构建wsdl2h.exe。这将解决问题。