Open ONVIF (Ağ Video Arayüzü Forumu) cihazından kayıtla ilgili sorun


90

Open Network Video Interface Forum-Java projesi üzerinde çalışıyorum ve ONVIF Uygulama Programcı Kılavuzu'nda açıklanan adımları takip ediyorum .

wsdlsONVIF sitesinde sağlanan kaynaklardan kaynaklar ürettim. Canlı yayın URI'sini media.wsdl. Şimdi kayıtla ilgili bir sorunum var. Denediğim kodlar aşağıda verilmiştir:

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();

Çalıştırma sırasında yukarıdaki kod şu şekilde bir hata verir:

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

Medya hizmetini de denedim, sonra hata:

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

5
ONVIF kaydediciler tarafından kullanılan hizmetin "kayıt" olduğunu unutmayın: çoğu ip kamera bunu desteklemez. İsteğe bağlı bir hizmet olduğu için (desteklenen profile bağlıdır) cihaz yeteneklerinde kontrol etmeniz gerektiğini düşünüyorum: onvif.org/ver10/device/wsdl/GetCapabilities . Bir not daha: son satırda getRecordings () 'i "yeteneklere" atıyorsunuz ... onvif.org/onvif/ver10/recording.wsdl'ye bakarak - Bunun GetServiceCapabilities () için çıktı türü olduğunu söyleyebilirim. Sadece iki kez kontrol edin.
Sigi

1
Yöntemin kodda var olduğu, ancak istemci tarafından izin verilmediği veya erişilemediği için web sunucusunun güvenlik politikaları incelenmelidir.
Ved

Ved ile anlaşın ... Bu WSDL'yi uygulayan kişi ya belirli özellikleri uygulamamış ya da ad alanı, işlevi içermeyen bir WSDL bildirimine işaret ediyor. Şahsen, WSDL'nin bu ONVIF seçimi beni biraz şaşırttı.

Yanıtlar:


2

Medya kaynağını denediğinizde, görünüşe göre, sunucu Hata kodu 405 döndürdüğü için yetkisiz bir eylem talep etmişsinizdir. Yöntemin kullanımı yasaklanmıştır ya da yöntemi kullanmak için bir kimlik bilgisine ihtiyacınız vardır.

Gelince Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized, @Sigismondo çoğu ip kameranın desteklemediği konusunda haklı. Bir ip kameradan kayıt yapmak için alternatif bir kayıt yöntemine (gerçek ve kelime anlamı) ihtiyacınız olacak.


1

http://" + deviceip + "/onvif/media_serviceKayıt hizmetine ulaşmak için kullanıyorsunuz , ancak bu bir media.wsdl hizmetidir. Bu nedenle, medya hizmetinde getRecordings'i aramaya çalıştığınızda bir hata almanız normal görünüyor.

İçin url recording.wsdl hizmet olmalıdır http://" + deviceip + "/onvif/recording_service.

Kayıt hizmetine ulaşmak için doğru URL'yi elde etmek için, onu devicemgmt.wsdl hizmetinin GetCapabilities yönteminden talep etmelisiniz .


0

HTTP 405 - Kaynağa izin verilmiyor, genellikle IIS'de görülür. Bu sorun, aşağıdaki koşullar geçerliyse oluşur:

  • Dosya adını belirtmezsiniz. Örneğin, http: // Sunucu / Web / ... belirtmezsiniz.

  • Komut Dosyası Nesne Modeli (SOM) etkinleştirildi.

  • Bir DTC olayı çağrılır.

Dolayısıyla, SOM etkinleştirildiğinde sayfaya bir <form> etiketi eklenir, etiket geçersizdir, herhangi bir eylem içermediği anlamına gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.