`
enenxie
  • 浏览: 32798 次
社区版块
存档分类
最新评论

WS-DISCOVERY使用

 
阅读更多

最近项目中要用到探测webservice服务端的信息,在网上查询后了解到apache cxf提供了这部分功能,支持包在附件中。

具体使用如下:

将支持包放到webservice服务项目lib目录下,提供udp探测功能。

客户端探测实现代码:

 

public class WsClientDiscovery {
    public static void main(String[] args) {
        Bus bus = null;
        try {
            bus = BusFactory.newInstance().createBus();

            WSDiscoveryClient client = new WSDiscoveryClient(bus);
            client.setAddress("soap.udp://192.168.0.143:3702");  //服务端地址和udp端口地址
            ProbeType pt = new ProbeType();
            ScopesType scopes = new ScopesType();
            pt.setScopes(scopes);
            ProbeMatchesType pmts = client.probe(pt);
            List<ResolveMatchType> rmts = new LinkedList<ResolveMatchType>();
            for (ProbeMatchType pmt : pmts.getProbeMatch()) {
                rmts.add(client.resolve(pmt.getEndpointReference()));
            }

            int i = 0;
            for (ResolveMatchType rmt : rmts) {
                i++;
                String address = rmt.getXAddrs().iterator().next();    //服务端提供服务
                QName qname = rmt.getTypes().iterator().next();
                if (qname.toString().contains("RemoteWSServer")) {
                    RemoteWSServer port = rmt.getEndpointReference().getPort(
                        RemoteWSServer.class);
                    ((BindingProvider) port).getRequestContext().put(
                        BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
                        "http://192.168.0.143:8081/remote/services/remoteWSServerRemote");
                    List<String> l = port.list();
                    System.out.println(l);
                }
            }
            client.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            bus.shutdown(true);
        }
    }

}

 

 另外,google中也有相同功能的开源项目:https://code.google.com/p/java-ws-discovery/

分享到:
评论

相关推荐

    WS 标准WS-Discovery200410.pdf

    4. **安全性**:虽然 WS-Discovery 本身不涉及安全协议,但它可以与其他安全技术(如 WS-Security)结合使用来保护通信。 #### 技术细节 - **消息格式**:WS-Discovery 定义了基于 XML 的消息格式,这些消息用于...

    ws.rar_ws-discovery

    在这个项目中,开发者可以学习到如何在Unix环境中使用C++编写网络程序,理解WS-Discovery协议的工作原理,包括服务注册、服务查找、服务通告等关键操作。此外,还能学习到如何编写和使用Makefile进行程序构建,以及...

    wcf ws-Discovery 全套源代码

    在这个**"wcf ws-Discovery 全套源代码"**中,包含了服务端和服务客户端的实现,这为学习和理解WCF与WS-Discovery的结合使用提供了实践基础。以下是一些关键知识点: 1. **服务契约(Service Contract)**:定义...

    WS-Discovery消息格式详解

    WS-Discovery是一种网络协议,主要用于Web服务的自动发现和定位。该协议定义了两种设备发现模式:Ad Hoc模式和Managed模式。 Ad Hoc模式是WS-Discovery的基础,适用于小型网络环境。在这种模式下,客户端通过多播...

    javaWsDiscovery:简单的WS-Discovery方法,不依赖于发现Onvif设备和其他设备

    JavaWs发现这是一种非常简单的针对Java的WS-Discovery黑客,没有任何依赖关系来发现Onvif设备地址和本地网络上的其他地址。 环顾WS-Discovery实现,我发现了java-ws-discovery和apache-cxf,如果您需要功能齐全的...

    ws-discovery:一个用于进行WS-Discovery的Ruby宝石

    ws_discovery 描述 该gem旨在提供搜索与WS-Discovery兼容的目标服务的能力。 它使用 ,因此,如果您还没有使用,那么熟悉它的概念将对您有所帮助。功能 搜索与WS-Discovery兼容的目标服务。例子 ↑ WS-发现搜索¶ ↑...

    gsoap2.8.15移植之wsdl文件

    2. **生成客户端和服务端代码**:有了gSOAP工具,你可以使用提供的WSDL文件来自动生成C/C++代码。`wsdl2h`工具会从WSDL文件中提取类型定义和接口信息,生成头文件;然后,`soapcpp2`工具基于这些头文件生成服务端和...

    了解 Web 服务规范_第 6 部分:WS-I 证书源码

    3. **测试用例生成**:使用WS-I证书源码,生成针对服务的测试用例。 4. **执行测试**:运行这些测试用例,检查服务的行为是否与预期相符。 5. **问题分析**:如果测试失败,分析原因并修复代码,直到服务通过所有...

    wsdl4j-1.6.2.jar和commons-discovery-0.4.jar.rar

    本文将深入探讨与标题"wsdl4j-1.6.2.jar和commons-discovery-0.4.jar.rar"相关的知识点,以及它们在构建和使用Web服务中的作用。 **WSDL4J-1.6.2.jar** 是一个Java库,专门用于处理和操作WSDL文档。WSDL4J是Java...

    ONVIF协议 discovery

    ONVIF协议,设备发现 分别使用remotediscovery.wsdl、WS-Discovery.wsdl实现了客户端扫描

    J2EE Web Services: XML SOAP WSDL UDDI WS-I JAX-RPC JAXR SAAJ JAXP

    4. **UDDI(Universal Description, Discovery, and Integration)**:UDDI是一个标准的目录服务,用于发布和查找Web服务。通过UDDI注册,服务提供商可以发布他们的服务信息,而服务消费者则可以通过查询UDDI来找到...

    onvif开发wsdl所用文件

    - 获取ONVIF设备提供的WSDL文件,通常可以从设备的ONVIF配置界面或者通过设备的Discovery机制获取。 - 运行gSOAP的wsdl2h工具,将WSDL文件转换为头文件(例如:`wsdl2h -o onvif.h your_device.wsdl`)。 - 使用...

    Onvif客户端

    搜索摄像机遵循ws-discovery协议,ws-discovery提供了两种操作模式:ad hoc和managed模式。

    onvif wsdl xsd下载

    在ONVIF环境中,设备使用WS-Discovery来找到网络上的其他ONVIF兼容设备。它允许设备自动发现彼此,而无需手动配置网络设置。WS-Discovery通过发送和响应特定的HTTP或UDP消息来实现这一功能。 **XSD(XML Schema ...

    web service standards overview

    - **WS-Addressing – WSDL Binding**: 规定了如何在WSDL文档中使用WS-Addressing。 - **WS-Addressing – SOAP Binding**: 规定了如何将WS-Addressing信息嵌入到SOAP消息中。 #### 三、元数据规格 元数据规格定义...

    onvif wsdl

    生成WS-DL通常需要使用工具,如Apache CXF、WSDL2Java等,它们可以将WS-DL转换为Java、C#或其他编程语言的代码,简化开发流程。 总之,"onvif wsdl"包含了ONVIF协议的核心接口定义,是理解和开发ONVIF系统的关键...

    discovery_cs.rar

    3. "discovery-nvt.c"、"discovery-nvc.c":这两个文件可能是Onvif网络视频传输(NVT)设备和服务的发现功能实现,"nvt"可能代表Network Video Transmitter,"nvc"可能代表Network Video Client。 4. "namespaces.c...

    cxf(jax-ws)+spring+hibernate整合包

    logging-1.1.1.jar,cxf-2.7.6.jar,cxf-manifest.jar,cxf-services-sts-core-2.7.6.jar,cxf-services-ws-discovery-api-2.7.6.jar,cxf-services-ws-discovery-service-2.7.6.jar,cxf-services-wsn-api-2.7.6.jar,cxf-...

    apache-cxf-2.7.8.zip

    5. **WS-Discovery**:CXF实现了WS-Discovery规范,使得服务可以自动发现彼此,简化了网络中的服务部署和配置。 6. **工具集**:压缩包内的工具集包括CXF的命令行工具、WSDL(Web Service Description Language)...

Global site tag (gtag.js) - Google Analytics