Tôi đang làm việc trong dự án Diễn đàn giao diện video mạng mở-Java và làm theo các bước được mô tả trong Hướng dẫn dành cho lập trình viên ứng dụng ONVIF .
Tôi đã tạo các nguồn từ wsdlstrang ONVIF được cung cấp. Tôi có thể truy xuất URI luồng trực tiếp bằng cách sử dụng media.wsdl. Bây giờ tôi gặp sự cố với việc ghi âm. Các mã mà tôi đã thử được cung cấp bên dưới:
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();
Đoạn mã trên khi chạy đưa ra một lỗi như sau:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized
Tôi cũng đã thử với dịch vụ phương tiện, sau đó lỗi là:
Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 405: Method Not Allowed