90

Open Network Video Interface Forum-Java プロジェクトに取り組んでおり、ONVIF Application Programmer's Guideに記載されている手順に従っています。

wsdls提供されている ONVIF サイトからソースを生成しました。を使用してライブ ストリーム URI を取得できます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
4

3 に答える 3

2

メディア ソースを試してみたところ、サーバーがエラー コード 405 を返したため、不正なアクションを要求したようです。メソッドの使用が禁止されているか、メソッドを使用するには資格情報が必要です。

に関してはException in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized、@Sigismondo は、ほとんどの IP カメラがサポートしていないという事実について正しいです。IPカメラから記録するには、代替の記録方法(文字通りと駄洒落)が必要になります。

于 2014-08-12T02:11:29.137 に答える
1

http://" + deviceip + "/onvif/media_serviceRecording サービスにアクセスするために使用していますが、これはmedia.wsdlサービスです。そのため、メディア サービスで getRecordings を呼び出そうとすると、通常はエラーが発生します。

recording.wsdlサービスの URL はhttp://" + deviceip + "/onvif/recording_serviceです。

正しい URL を取得して記録サービスに到達するには、devicemgmt.wsdlサービスの GetCapabilities メソッドから要求する必要があります。

于 2014-08-17T21:54:23.863 に答える
0

HTTP 405 - Resource not allowedは通常、IIS で発生します。この問題は、次の条件に該当する場合に発生します。

  • ファイル名を指定しません。たとえば、http://Server/Web/... を指定しません。

  • スクリプト オブジェクト モデル (SOM) が有効になっています。

  • DTC イベントが呼び出されます。

そのため、SOM が有効になっている場合、< form >タグがページに挿入されますが、タグが無効であることは、アクションが含まれていないことを意味します。

于 2014-08-20T08:37:54.000 に答える