web-dev-qa-db-fra.com

Problème d'enregistrement avec le périphérique Open ONVIF (Network Video Interface Forum)

Je travaille sur le projet Open Network Video Interface Forum-Java et je suis les étapes décrites dans le ONVIF Application Programmer's Guide .

J'ai généré des sources à partir du wsdls fourni sur le site ONVIF. Je suis en mesure de récupérer l'URI de diffusion en direct à l'aide du media.wsdl. Maintenant, j'ai un problème avec l'enregistrement. Les codes que j'ai essayés sont donnés ci-dessous:

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

Le code ci-dessus lors de l'exécution donne une erreur comme:

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

J'ai également essayé avec le service multimédia, puis l'erreur est:

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

Lorsque vous avez essayé avec la source multimédia, vous avez apparemment demandé une action non autorisée car le serveur a renvoyé le code d'erreur 405. Soit la méthode est interdite d'utilisation, soit vous avez besoin d'un justificatif d'identité pour utiliser la méthode.

Pour ce qui est de Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized, @Sigismondo a raison sur le fait que la plupart des caméras IP ne le prennent pas en charge. Vous aurez besoin d'une méthode d'enregistrement alternative (littérale et jeu de mots) pour enregistrer à partir d'une caméra IP.

2
AMDG

Vous utilisez http://" + deviceip + "/onvif/media_service pour accéder au service d'enregistrement, mais il s'agit d'un service media.wsdl . Ainsi, lorsque vous essayez d'appeler getRecordings sur le service multimédia, il semble normal que vous receviez une erreur.

L'URL du service registration.wsdl doit être http://" + deviceip + "/onvif/recording_service.

Afin d'obtenir l'URL correcte pour atteindre le service d'enregistrement, vous devez la demander à la méthode GetCapabilities du service devicemgmt.wsdl .

1
mpromonet

HTTP 405 - Ressource non autorisée se produit généralement dans IIS. Ce problème se produit si les conditions suivantes sont remplies:

  • Vous ne spécifiez pas le nom du fichier. Par exemple, vous ne spécifiez pas http: // Server/Web/...

  • Le modèle d'objet de script (SOM) est activé.

  • Un événement DTC est appelé.

Ainsi, lorsque le SOM est activé, une balise <form> est insérée dans la page, la balise n'est pas valide signifie qu'elle ne contient aucune action.

0
Ashraf.Shk786