【问题标题】:Generate Java webservice based on ONVIF wsdl (Top Down Method)基于ONVIF wsdl生成Java webservice(Top Down Method)
【发布时间】:2017-10-10 08:36:38
【问题描述】:

我想为像相机这样的设备生成服务器代码。这些设备有一个标准协议,称为ONVIF,它发布一些流行的 WSDL 文档。所以我必须从 ONFIV 的 WSDL 文档中生成一个接口和骨架。

当我使用 wsdl2java 从ONVIF wsdl file 生成服务器代码时,它说:

org.apache.axis2.AxisFault: No services found in the WSDL at https://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl with targetnamespace http://www.onvif.org/ver10/device/wsdl

这些 WSDL 文件有问题吗?
如何基于 ONVIF WSDL 生成 Server 代码?

【问题讨论】:

    标签: java web-services soap wsdl onvif


    【解决方案1】:

    我在从 WSDL 文件生成 java 类以创建 ONVIF Web 服务器时遇到了同样的问题。经过大量调查后,我发现 WDSL 文件中有一些错误,我从 https://www.onvif.org 得到了一些错误

    如果您想正确创建 java 类,您需要对它们进行一些更改。 首先,在每个 .wsdl 文件中检查 schemaLocation 的正确路径,可能需要更改为:schemaLocation="../../../ver10/schema/onvif.xsd"/>

    还要检查是否所有的 .wsdl 文件都有这样的服务标签。

    <wsdl:service name="DeviceIOPService">
            <wsdl:port name="DeviceIOPort" binding="tmd:DeviceIOBinding">
                <soap:address location="http://www.onvif.org/ver10/deviceIO/wsdl"/>
            </wsdl:port>
        </wsdl:service>
    

    如果他们没有,为他们创建,然后运行生成命令。 如果您需要更多信息,请告诉我。

    【讨论】:

    • 嗨,Yoones,你能帮我解决一下this question。我发现更改我导入的每个 wsdl 文件绝对是愚蠢的。
    【解决方案2】:

    如果您按照您为 wsdl2java 指定的方式访问链接 https://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl,您会点击 HTML 页面,您不会获得 WSDL 文件。请看下面的截图:

    HTML 文档实际上是一个有效的 WSDL,即完整的 xml 文档,但它使用 XSLT 将 XML 转换为 HTML 以进行显示,这给 wsdl@java 带来了一些问题。

    如果您查看网页源代码并删除 XSLT 链接代码:

    <?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet type="text/xsl" href="../../../ver20/util/onvif-wsdl-viewer.xsl"?>
    

    变成:

    <?xml version="1.0" encoding="utf-8"?>
    

    然后您可以将 WSDL 加载到 WSDL 编辑器中并查看操作,请参见下面的屏幕截图:

    为了使这项工作正常进行,我会联系 Onvif 小组并询问他们的 WSDL 位置,因为 WSDL 包含指向您也需要的 XSD 文件的链接。当前位置不能按原样使用。

    【讨论】:

    • 没有任何改变。在 WSDL 中找不到服务
    • 是的,wsdl 根本无效。您需要联系该组织。这不是有效的 WSDL 1.1
    • 我想创建一个网络服务作为相机提供商。该文件的哪一部分应该更改?
    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多