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ừ wsdls
trang 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