wsdl2h无法连接到https

问题描述 投票:1回答:3

我正在尝试使用gSoap连接到使用https保护的Web服务。但是,当我使用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。我错过了什么?

linux ssl https gsoap
3个回答
2
投票

默认情况下,wsdl2h的构建不支持SSL。 gsoap发行版的wsdl代码文件夹中的README.txt文件包含以下内容:

使用SSL进行WSDL文件的HTTPS传输

您必须使用“make secure”构建WSDL解析器,以构建可以访问HTTPS安全站点的启用SSL的wsdl2h版本。

如果您没有安装OpenSSL,则无法构建wsdl2h的SSL安全版本。在这种情况下,我们建议下载WSDL和模式文件,以便使用不支持SSL的wsdl2h工具进行处理。

因此,您需要手动下载.wsdl文件并在其上运行现有的wsdl2h或使用make secure重建wsdl2h,以便它知道包含SSL库和对https的支持。


1
投票

好吧,至少2.8“安全”只是不起作用。诀窍是将BOTH CFLAGS和CFLAGS定义为-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

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。这将解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.