java - 基于ONVIF wsdl(Top Down Method)生成Java webservice

标签 java web-services soap wsdl onvif

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

当我使用 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代码?

最佳答案

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

如果您想正确地创建 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>

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

关于java - 基于ONVIF wsdl(Top Down Method)生成Java webservice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46662145/

相关文章:

java - 如何在 Eclipse 4 的默认位置获取 RCP 应用程序中的工具栏元素?

java - 如何运行 JAR 文件

java - 为什么 `weakly consistent iterator`只反射(reflect)修改和删除变化,而不反射(reflect)插入变化

php - 检查 WS* 服务器实现中的签名

java - 从 WSDL 到 Java 对象 - 自动生成?

ruby-on-rails - 这两个 SOAP 请求有什么区别?

java - 使用 Criteria 进行算术运算

java - JAXB 解码忽略 SOAP 信封/ header 标记

java - 使用注释在 JBoss AS 7 中创建 Web 服务

python - 通过Python suds在JIRA中创建问题时设置受让人字段