ONVIF - 设备发现的开始 [英] ONVIF - beginning of Device discovery

查看:1183
本文介绍了ONVIF - 设备发现的开始的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我打算做一个java onvif应用程序。我已经创建了一个新项目,并从devicemgmt.wsdl生成源。还从远程discovery.wsdl生成类。
如何使用这些生成的类来发现网络中的设备?
感谢任何帮助。

I am planning to do a java onvif application. I have created a new project and generated sources from devicemgmt.wsdl.Also generated the classes from remote discovery.wsdl. How can I discover a device in a network using theses generated classes? Thanks for any help.

推荐答案

devicemgmt.wsdl与发现过程无关,ONVIF发现过程上 http://specs.xmlsoap.org/ws/2005/04/discovery它使用SOAP over UDP。

devicemgmt.wsdl is not related to discovery process, the ONVIF discovery process is based on http://specs.xmlsoap.org/ws/2005/04/discovery it use SOAP over UDP.

如果使用apache-cxf,可以使用

If you are using apache-cxf, this can be achieve using


org.apache.cxf.ws.discovery.WSDiscoveryClient

org.apache.cxf.ws.discovery.WSDiscoveryClient

一个简单的示例代码可以是:

A simple sample code could be :

import java.util.List;
import javax.xml.ws.EndpointReference;
import org.apache.cxf.ws.discovery.WSDiscoveryClient;

public class Main 
{
    public static void main(String[] args) 
    {
        WSDiscoveryClient client = new WSDiscoveryClient();
        client.setVersion10(); // use WS-discovery 1.0
        client.setDefaultProbeTimeout(1000); // timeout 1s

        System.out.println("Probe:" + client.getAddress());
        List<EndpointReference> references = client.probe();

        System.out.println("Nb answsers:" + references.size());
        for (EndpointReference ref : references)
        {
            System.out.println(ref.toString());
        }
    }
}

这篇关于ONVIF - 设备发现的开始的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆