ओपन ONVIF (नेटवर्क वीडियो इंटरफेस फोरम) डिवाइस से रिकॉर्डिंग के साथ समस्या


90

मैं ओपन नेटवर्क वीडियो इंटरफेस फोरम-जावा परियोजना पर काम कर रहा हूं और इसमें वर्णित चरणों का पालन कर रहा हूं ONVIF एप्लिकेशन प्रोग्रामर गाइड

मैंने wsdlsONVIF साइट में दिए गए स्रोतों से जेनरेट किया है । मैं लाइव स्ट्रीम यूआरआई का उपयोग करके पुनः प्राप्त करने में सक्षम हूंmedia.wsdl । अब मेरे पास रिकॉर्डिंग के साथ एक मुद्दा है। मेरे द्वारा कोशिश की गई कोड नीचे दिए गए हैं:

RecordingService recording_ervice = new RecordingService();
RecordingPort record_port = recording_ervice.getRecordingPort();


BindingProvider bindingProvider = (BindingProvider) record_port;

// Add a security handler for the credentials
final Binding binding = bindingProvider.getBinding();
List<Handler> handlerList = binding.getHandlerChain();
if (handlerList == null) {
    handlerList = new ArrayList<Handler>();
}

handlerList.add(new RecordStream.SecurityHandler());
// binding.setHandlerChain(handlerList);

// Set the actual web services address instead of the mock service
Map<String, Object> requestContext = bindingProvider.getRequestContext();

requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://" + deviceip + "/onvif/media_service");
requestContext.put(BindingProvider.USERNAME_PROPERTY, user);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, pass);

Recordings recordings = record_port.getRecordings();

चलाने पर उपरोक्त कोड निम्नानुसार त्रुटि देता है:

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized

मैंने मीडिया सेवा के साथ भी प्रयास किया, फिर त्रुटि यह है:

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 405: Method Not Allowed

5
ध्यान दें कि "रिकॉर्डिंग" ONVIF रिकॉर्डर द्वारा उपयोग की जाने वाली सेवा है: अधिकांश आईपी कैमरे इसका समर्थन नहीं करते हैं। मुझे लगता है कि आपको इसे उपकरण क्षमताओं में जांचना चाहिए, क्योंकि यह एक वैकल्पिक सेवा है (समर्थित प्रोफ़ाइल पर निर्भर करता है): onvif.org/ver10/device/wsdl/GetCapabilities । एक और ध्यान दें: अंतिम पंक्ति में आप getRecordings () को "क्षमताओं" को असाइन कर रहे हैं ... onvif.org/onvif/ver10/recording.wsdl पर देख रहे हैं - मैं कहूंगा कि यह GetServiceCapabilities () के लिए आउटपुट प्रकार है। बस इसे भी दो बार जांचें।
सिगिंडोंडो

1
वेब सर्वर की सुरक्षा नीतियों की जांच की जानी चाहिए, क्योंकि विधि कोड में मौजूद है, लेकिन क्लाइंट द्वारा अनुमत या पहुंच योग्य नहीं है।
वेद

वेद से सहमत ... जो कोई भी इस WSDL को लागू कर रहा है उसने या तो कुछ विशेषताओं को लागू नहीं किया है या नामस्थान एक WSDL घोषणा की ओर इशारा कर रहा है जिसमें फ़ंक्शन शामिल नहीं है। व्यक्तिगत रूप से, मैं WSDL की इस ONVIF पसंद से थोड़ा परेशान हूं।

जवाबों:


2

जब आपने मीडिया स्रोत के साथ प्रयास किया, तो आपने सर्वर से त्रुटि कोड 405 को वापस करने के बाद स्पष्ट रूप से अनधिकृत कार्रवाई का अनुरोध किया। या तो विधि उपयोग से प्रतिबंधित है, या आपको विधि का उपयोग करने के लिए एक क्रेडेंशियल की आवश्यकता है।

के रूप में Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized, @Sigismondo इस तथ्य के बारे में सही है कि अधिकांश आईपी कैमरे इसका समर्थन नहीं करते हैं। आईपी ​​कैमरा से रिकॉर्ड करने के लिए आपको एक वैकल्पिक रिकॉर्डिंग विधि (शाब्दिक और वाक्य) की आवश्यकता होगी।


1

आप http://" + deviceip + "/onvif/media_serviceरिकॉर्डिंग सेवा तक पहुँचने के लिए उपयोग कर रहे हैं , लेकिन यह एक मीडियावार्ड सेवा है। इसलिए जब आप मीडिया सर्विस पर getRecordings को कॉल करने की कोशिश करते हैं तो ऐसा लगता है कि आपको कोई त्रुटि मिलती है।

रिकॉर्डिंगटीडल सेवा के लिए यूआरएल होना चाहिए http://" + deviceip + "/onvif/recording_service

रिकॉर्डिंग सेवा तक पहुँचने के लिए corect URL प्राप्त करने के लिए आपको इसे devicemgmt.wsdl सेवा की GetCapabilities विधि से अनुरोध करना चाहिए ।


0

HTTP 405 - संसाधन की अनुमति आमतौर पर IIS में नहीं होती है। यह समस्या निम्न स्थितियों के सत्य होने पर होती है:

  • आप फ़ाइल का नाम निर्दिष्ट नहीं करते हैं। उदाहरण के लिए, आप http: // सर्वर / वेब / ... निर्दिष्ट नहीं करते

  • स्क्रिप्टिंग ऑब्जेक्ट मॉडल (SOM) सक्षम है।

  • डीटीसी इवेंट कहा जाता है।

इसलिए, जब SOM को सक्षम किया जाता है तो पेज में <form> टैग डाला जाता है, टैग अमान्य है इसका अर्थ है कि इसमें कोई क्रिया नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.