Ich arbeite am Open Network Video Interface Forum-Java-Projekt und folge den im ONVIF Application Programmer's Guide beschriebenen Schritten .
Ich habe Quellen von der wsdls
in ONVIF bereitgestellten Site generiert. Ich kann den Live-Stream-URI mit dem abrufen media.wsdl
. Jetzt habe ich ein Problem mit der Aufnahme. Die Codes, die ich ausprobiert habe, sind unten angegeben:
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();
Der obige Code beim Ausführen gibt einen Fehler aus als:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized
Ich habe es auch mit Media Service versucht, dann ist der Fehler:
Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 405: Method Not Allowed
Antworten:
Als Sie es mit der Medienquelle versucht haben, haben Sie anscheinend eine nicht autorisierte Aktion angefordert, da der Server den Fehlercode 405 zurückgegeben hat. Entweder ist die Verwendung der Methode verboten, oder Sie benötigen einen Berechtigungsnachweis, um die Methode zu verwenden.
Was
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized
ist @Sigismondo Recht über die Tatsache , dass die meisten IP - Kameras ist es nicht unterstützen. Sie benötigen eine alternative Aufnahmemethode (Literal und Wortspiel), um von einer IP-Kamera aufzunehmen.quelle
Sie verwenden
http://" + deviceip + "/onvif/media_service
, um den Aufzeichnungsdienst zu erreichen, dies ist jedoch ein media.wsdl- Dienst. Wenn Sie also versuchen, getRecordings im Mediendienst aufzurufen, wird normalerweise eine Fehlermeldung angezeigt.Die URL für recording.wsdl Service sollte
http://" + deviceip + "/onvif/recording_service
.Um die korrekte URL zu erhalten, um den Aufzeichnungsdienst zu erreichen, sollten Sie sie von der GetCapabilities-Methode des devicemgmt.wsdl- Dienstes anfordern .
quelle
HTTP 405 - Ressource nicht zulässig tritt normalerweise in IIS auf. Dieses Problem tritt auf, wenn die folgenden Bedingungen erfüllt sind:
Sie geben den Dateinamen nicht an. Beispielsweise geben Sie http: // Server / Web / ... nicht an.
Das Scripting Object Model (SOM) ist aktiviert.
Wenn der SOM aktiviert ist, wird ein <form> -Tag in die Seite eingefügt. Das Tag ist ungültig, dh es enthält keine Aktion.
quelle