Tôi đang lên kế hoạch để làm một ứng dụng java onvif. Tôi đã tạo ra một dự án mới và tạo ra các nguồn từ devicemgmt.wsdl.Also tạo ra các lớp từ remote.wsdl từ xa. Làm cách nào để khám phá thiết bị trong mạng bằng các lớp được tạo ra? Cảm ơn bạn đã giúp đỡ.ONVIF - bắt đầu khám phá thiết bị
Trả lời
devicemgmt.wsdl không liên quan đến quá trình khám phá, quá trình khám phá ONVIF dựa trên http://specs.xmlsoap.org/ws/2005/04/discovery nó sử dụng SOAP trên UDP.
Nếu bạn đang sử dụng apache-CXF, điều này có thể đạt được bằng
org.apache.cxf.ws.discovery.WSDiscoveryClient
Một mẫu mã đơn giản có thể là:
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());
}
}
}
Lý do có thể là gì (tôi đang sử dụng cxf) là thiết bị nếu được tìm thấy bởi WSDiscoveryClient(), nhưng không được tìm thấy bởi bất kỳ khách hàng onvif chất lượng sản xuất nào như "SmartICRSS" hoặc ứng dụng android "Onvifier" – 4ntoine
@ 4ntoine nó có thể là phiên bản xà phòng? bạn nên đặt câu hỏi cho một số chi tiết chụp mạng – mpromonet
có lẽ bạn đang đúng. Tôi đã chặn các yêu cầu/phản hồi phát hiện - đọc câu hỏi SO riêng của tôi: http://stackoverflow.com/questions/27191245/how-to-generate-soap-1-2-binding-for-wsdl-using-wsdl2java – 4ntoine
Tôi gặp vấn đề tương tự, CXF chỉ đơn giản là lớn, hãy kiểm tra cách tiếp cận của tôi: JavaWsDiscovery tại https://github.com/thhart/javaWsDiscovery.
Nó sử dụng một đầu dò mạng đơn giản như đề xuất theo tiêu chuẩn ONVIF để có thể xác định bất kỳ các thiết bị trong mạng nội bộ của bạn, sau dòng sẽ trở lại cho bạn tất cả các thiết bị có sẵn:
final Collection urls = DeviceDiscovery.discoverWsDevicesAsUrls("^http$", ".onvif.");
- 1. Khám phá thiết bị mạng
- 2. Khám phá USB thiết bị Mass Storage với Java
- 3. Cách khám phá các thiết bị trên mạng?
- 4. Khám phá thiết bị di động bằng cách sử dụng wifi
- 5. Trình khám phá tệp của thiết bị Android không hoạt động với Android 7 (API 24+)
- 6. Cách tốt nhất để thực hiện khám phá thiết bị trên mạng LAN
- 7. Khám phá Bonjour trong Javascript? Có lẽ?
- 8. Khám phá nút không dây
- 9. Khám phá IP công trình
- 10. Python unittest và khám phá
- 11. bắt đầu MongoDB và trở về thiết bị đầu cuối
- 12. Khám phá cơ sở hạ tầng mạng
- 13. Cách khám phá kiểu dáng trong android
- 14. Gọi Numpy và khám phá từ C#
- 15. RNDIS "Thiết bị tổng hợp" không thể bắt đầu
- 16. Điểm bắt đầu để mã hóa thiết bị ảo
- 17. Plugin NPAPI trong trình khám phá Internet?
- 18. khám phá và dịch ngược python bytecode
- 19. Khám phá lý do cho lỗi File.mkdirs()
- 20. Delphi 2010 RTTI: Khám phá Enumerations
- 21. Khám phá đối tượng COM trong PHP
- 22. Mở trình khám phá trên tệp
- 23. Đệ quy khám phá bất ngờ nhất
- 24. Khám phá mô hình điện thoại cụ thể trong JS
- 25. Sự cố với Trình khám phá cửa sổ Giết chết?
- 26. Đang cố gắng khám phá các thiết bị iOS trên mạng của tôi bằng cách sử dụng tập lệnh python
- 27. Trình khám phá tệp không hiển thị gì
- 28. Trình khám phá tệp luôn trống trong Eclipse
- 29. iOS 7 ANCS: Khám phá Dịch vụ ANCS chính UUID
- 30. Trình khám phá tệp bằng Java - cách thực hiện?
thể trùng lặp của [WS- Triển khai khám phá cho Java] (http://stackoverflow.com/questions/1946206/ws-discovery-implementations-for-java) – mpromonet