问题标签 [ws-discovery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gsoap - gsoap:强制 WS-Discovery 1.0 而不是 1.1
我正在使用 gsoap 及其插件 wsddapi 来实现 WS-Discovery。
我需要实现 WS-Discovery v1.0,但插件只输出 v1.1 消息。在插件的源代码中,他们说它对 v1.1 和 v1.0 都有效,但我无法理解如何强制 gsoap 使用 v1.0 消息。
你有什么提示吗?
c# - Java如何发现WCF服务?
请访问http://www.codeproject.com/Articles/31285/WS-Discovery-for-WCF,我已经下载了源代码并使用相关的 WSDiscovery 在 .NET Framework 3.5 中编写了一个 WCF 服务,并将该服务发布到源代码中具有相同配置的网页。它运行正确,WCF客户端也可以发现这个服务。现在我的问题来了,Java客户端可以通过WS-Discovery或其他人发现这个服务吗?非常感谢!
wcf - 将 URI 解析为 EndpointAddress
我目前有一个 WCF 客户端,它能够进行临时服务发现以查找在本地子网上运行的(未知)服务。我想实现一种方法,让用户通过在文本框中输入 URI 来指定要使用的服务端点,并让客户端将此 URI 解析为EndpointAddress
,并在此过程中收集有关服务的其他元数据。即,我需要收集EndpointIdentity
在EndpointDiscoveryBehavior
.
我试图通过使用来实现这一点DiscoveryClient.Resolve()
,但我只收到该ResolveResponse.EndpointDiscoveryMetadata
属性的 null 。
我找到了很多关于 的信息,但关于 的信息DiscoveryClient.Find()
并不多DiscoveryClient.Resolve()
。
所以我的问题是:
- 这是 的预期用途
DiscoveryClient.Resolve()
吗? MetadataResolver
这里更合适吗?- 如何将 URI 解析为 a
EndpointAddress
并获取其他元数据?
c# - WCF discovery with service hosts using net.tcp://0.0.0.0:0/blah announces net.tcp://0.0.0.0:0/blah
I wanted a discoverable service that would listen on all interfaces and publish discovery announcements for each interface. I was hoping to be able to eventually just configure this in the config file using tcp://0.0.0.0:0/blah as the service endpoint. But when I run the code below, the announcements that it sends out use tcp://0.0.0.0:0/blah as the EndpointAddress which is useless to clients.
I want to receive announcements for every endpoint it derived from tcp://0.0.0.0:0/blah and I would prefer to use a config file and not a programmatic service host setup like below. Any ideas for a workaround?
wso2 - wso2:ws-discovery 集成
WSO2 WS-发现集成
我们正在尝试将 WS-Discovery 与 Carbon 产品 WSO2 Governance Registry 和 WSO2 ESB 集成,通过 Spring 在 Tomcat 上运行配置 Apache CXF Web 服务堆栈,向 WSO2 上的 Discovery Proxy (localhost:9443/services/DiscoveryProxy) 发送问候消息格雷格。
因此,我们将 cxf-services-ws-discovery-service.jar 和 cxf-services-ws-discovery-api.jar 添加到 Tomcat 的类路径中。此外,我们将 spring bus 属性 org.apache.cxf.service.ws-discovery.address 设置为 WSO2 Greg 上的 WS-Discovery 代理的 URL 地址,以在托管模式下运行 WS-Discovery。通过运行 Tomcat 和 WSO2 Greg,wso2Carbon.log (WSO2 Greg) 中记录了以下错误消息...
我们通过阅读 WSO2 产品文档和搜索多个论坛、博客等尝试了几个小时来解决这个问题。不幸的是,我们找不到解决方案。
备注:WS-Discovery 与 WSO2 应用程序服务器而不是 Tomcat 的集成工作得很好。但是,当使用 WSO2 ESB 作为发现客户端从 WSO2 Greg 发现服务时,从 WSO2 ESB 上发现的服务创建代理服务的向导在创建代理后缺少 publishWSDL xml 标记。此标签必须手动添加。有没有办法在不另外编辑的情况下完成这项工作?
我们将不胜感激。
提前致谢
c# - WCF 服务故障处理 WS-Discovery Resolve 消息
我们有一个实现发现的 WCF 服务。它工作正常,但我们有一个错误处理程序似乎正在网络上捕获一条消息,我不确定它是否无效。使用网络监视器后,它似乎正在处理/忽略其他与发现相关的消息,而不是这个。
我的问题:是否可以在我的服务中添加某种额外的配置来优雅地处理这种(类型)消息?
我只是想知道我们是否遗漏了什么。如果没有简单的解决方案,我很乐意让我们的服务将其作为当前故障处理。
这是错误:
这是消息:
这是我基于默认 WCF 新项目模板的示例应用程序:
程序.cs:
IService1.cs 和 Service1.cs:
干杯,克里斯。
c# - 发现 - ProbeMatch 响应被丢弃
我使用 onvif 相机,但发现有一些问题。
使用如下非常基本的发现代码,我得到了我们网络上大多数设备的回复,但有一些被丢弃了。我添加了跟踪日志记录,我可以看到发现客户端丢弃的消息以及描述
DiscoveryClient 删除了带有 messageId='uuid:xxx' 和 relatedTo='uuid:xx' 的 ProbeMatches 消息,因为相应的 Find 操作已完成或相关的值无效。
查看跟踪中的相关值以及 MS 网络监视器中的值,它们似乎完全相同,而被丢弃的那些在前几个回复中,所以我认为它们不是在操作完成之后。
我还运行了 sourceforge 上的 onvif 设备管理器,这有同样的问题,但使用不同的设备,以前有没有人遇到过这个问题或者有任何想法可能导致它。
c# - 具有多个 IP 地址的网络接口上的 WCF Web 服务发现
我正在尝试使用 WCFDiscoveryClient
使用以下代码进行 Web 服务发现:
这在具有分配给单个网络接口的单个 IP 地址 (10.1.4.25) 的机器上非常有效。广播从 10.1.4.25 发送到 239.255.255.250,我收到来自同一子网的 5 台设备的响应。
但是,当机器在同一个接口上有多个 IP 时,它似乎会选择一个源 IP 并从中发送请求。在这种情况下,我收到了来自单个设备的回复,给出了 169.254 地址。
我尝试设置UdpDiscoveryEndpoint.TransportSettings.MulticastInterfaceId
一个合适的接口 ID,但它没有帮助,因为它识别单个接口,而不是特定的 IP。该UdpDiscoveryEndpoint.ListenUri
属性还返回多播地址,因此不会影响源 IP。
UdpDiscoveryEndpoint.Address
是发现协议的 URN。
有什么方法可以强制它从特定的 IP 地址发送,或者理想情况下,每个配置的 IP 上的多个请求?
我也尝试过似乎有同样问题的ONVIF 设备管理器。
请注意,这不是让服务绑定到特定的或“所有地址”IP。它与发送发现请求的 IP 有关。
spring - 如何设置其 WS-Discovery 插件使用的 CXF 服务的 publishedUrl?
我正在尝试使用 CXF WS-Discovery 插件发布 CXF 服务的 URL。
教程https://cxf.apache.org/docs/writing-a-service-with-spring.html帮助我构建了一个 helloworld 服务。WS-Discovery 的 CXF 文档https://cxf.apache.org/docs/ws-discovery.html说明添加 cxf-services-ws-discovery-service.jar 允许发布它。
很好,但是发布的 url 是相对于 servlet 的,因此无法从发送 WS-Discovery Probe 的客户端访问。
我发现了一个有趣的方法http://osdir.com/ml/users-cxf-apache/2012-05/msg00524.html建议使用以下 web.xml 和 cxf-servlet.xml 文件:
网页.xml:
cxf-servlet.xml:
如果 servlet 容器使用端口 8080,这可以正常工作。
我尝试使用servletContext.getRealPath('/webservices')
,但这给出了文件系统路径而不是 http 地址。
有没有办法获取 servlet 容器端口(符合 tomcat、jetty、...)?或发布可导出 URL 的其他方式?
android - Android 的 WS-Discovery 实现
我需要在 android 上使用 WS-Discovery。我用谷歌搜索了将近一天,但没有找到。
如果你处于我的境地,你会怎么做?