最近项目中要用到探测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/
相关推荐
4. **安全性**:虽然 WS-Discovery 本身不涉及安全协议,但它可以与其他安全技术(如 WS-Security)结合使用来保护通信。 #### 技术细节 - **消息格式**:WS-Discovery 定义了基于 XML 的消息格式,这些消息用于...
在这个项目中,开发者可以学习到如何在Unix环境中使用C++编写网络程序,理解WS-Discovery协议的工作原理,包括服务注册、服务查找、服务通告等关键操作。此外,还能学习到如何编写和使用Makefile进行程序构建,以及...
在这个**"wcf ws-Discovery 全套源代码"**中,包含了服务端和服务客户端的实现,这为学习和理解WCF与WS-Discovery的结合使用提供了实践基础。以下是一些关键知识点: 1. **服务契约(Service Contract)**:定义...
WS-Discovery是一种网络协议,主要用于Web服务的自动发现和定位。该协议定义了两种设备发现模式:Ad Hoc模式和Managed模式。 Ad Hoc模式是WS-Discovery的基础,适用于小型网络环境。在这种模式下,客户端通过多播...
JavaWs发现这是一种非常简单的针对Java的WS-Discovery黑客,没有任何依赖关系来发现Onvif设备地址和本地网络上的其他地址。 环顾WS-Discovery实现,我发现了java-ws-discovery和apache-cxf,如果您需要功能齐全的...
ws_discovery 描述 该gem旨在提供搜索与WS-Discovery兼容的目标服务的能力。 它使用 ,因此,如果您还没有使用,那么熟悉它的概念将对您有所帮助。功能 搜索与WS-Discovery兼容的目标服务。例子 ↑ WS-发现搜索¶ ↑...
2. **生成客户端和服务端代码**:有了gSOAP工具,你可以使用提供的WSDL文件来自动生成C/C++代码。`wsdl2h`工具会从WSDL文件中提取类型定义和接口信息,生成头文件;然后,`soapcpp2`工具基于这些头文件生成服务端和...
3. **测试用例生成**:使用WS-I证书源码,生成针对服务的测试用例。 4. **执行测试**:运行这些测试用例,检查服务的行为是否与预期相符。 5. **问题分析**:如果测试失败,分析原因并修复代码,直到服务通过所有...
本文将深入探讨与标题"wsdl4j-1.6.2.jar和commons-discovery-0.4.jar.rar"相关的知识点,以及它们在构建和使用Web服务中的作用。 **WSDL4J-1.6.2.jar** 是一个Java库,专门用于处理和操作WSDL文档。WSDL4J是Java...
ONVIF协议,设备发现 分别使用remotediscovery.wsdl、WS-Discovery.wsdl实现了客户端扫描
4. **UDDI(Universal Description, Discovery, and Integration)**:UDDI是一个标准的目录服务,用于发布和查找Web服务。通过UDDI注册,服务提供商可以发布他们的服务信息,而服务消费者则可以通过查询UDDI来找到...
- 获取ONVIF设备提供的WSDL文件,通常可以从设备的ONVIF配置界面或者通过设备的Discovery机制获取。 - 运行gSOAP的wsdl2h工具,将WSDL文件转换为头文件(例如:`wsdl2h -o onvif.h your_device.wsdl`)。 - 使用...
搜索摄像机遵循ws-discovery协议,ws-discovery提供了两种操作模式:ad hoc和managed模式。
在ONVIF环境中,设备使用WS-Discovery来找到网络上的其他ONVIF兼容设备。它允许设备自动发现彼此,而无需手动配置网络设置。WS-Discovery通过发送和响应特定的HTTP或UDP消息来实现这一功能。 **XSD(XML Schema ...
- **WS-Addressing – WSDL Binding**: 规定了如何在WSDL文档中使用WS-Addressing。 - **WS-Addressing – SOAP Binding**: 规定了如何将WS-Addressing信息嵌入到SOAP消息中。 #### 三、元数据规格 元数据规格定义...
生成WS-DL通常需要使用工具,如Apache CXF、WSDL2Java等,它们可以将WS-DL转换为Java、C#或其他编程语言的代码,简化开发流程。 总之,"onvif wsdl"包含了ONVIF协议的核心接口定义,是理解和开发ONVIF系统的关键...
3. "discovery-nvt.c"、"discovery-nvc.c":这两个文件可能是Onvif网络视频传输(NVT)设备和服务的发现功能实现,"nvt"可能代表Network Video Transmitter,"nvc"可能代表Network Video Client。 4. "namespaces.c...
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-...
5. **WS-Discovery**:CXF实现了WS-Discovery规范,使得服务可以自动发现彼此,简化了网络中的服务部署和配置。 6. **工具集**:压缩包内的工具集包括CXF的命令行工具、WSDL(Web Service Description Language)...