从Open ONVIF(networkingvideo接口论坛)设备录制问题

我正在开发networkingvideo接口论坛Java项目,并按照“ ONVIF应用程序员指南”中描述的步骤进行操作。

我已经从ONVIF网站提供的wsdls生成了源代码。 我可以使用media.wsdl检索实时streamURI。 现在我有一个logging问题。 我试过的代码如下:

 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 

当您尝试使用媒体源时,您显然请求了未经授权的操作,因为服务器返回了错误代码405。要么禁止使用此方法,要么使用此方法需要证书。

至于Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized ,@Sigismondo是正确的事实,大多数networking摄像机不支持它。 您将需要一个替代logging方法(文字和双关语)从IP摄像机logging。

您正在使用http://" + deviceip + "/onvif/media_service访问录制服务,但是这是一个media.wsdl服务。 所以当你尝试在媒体服务上调用getRecordings时,你会收到一个错误。

recording.wsdl服务的URL应该是http://" + deviceip + "/onvif/recording_service

为了让corect URL到达logging服务,您应该从devicemgmt.wsdl服务的GetCapabilities方法中请求它。

HTTP 405 – 资源不允许通常在IIS中发生。 如果下列条件为真会发生此问题:

  • 您不指定文件名称。 例如,您不指定http:// Server / Web / …

  • 脚本对象模型(SOM)已启用。

  • DTC事件被调用。

因此,当启用SOM时,在页面中插入一个<form>标签,标签无效意味着它不包含任何操作。