- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
关于 Trang Câu hỏi thường gặp của OracleVề Java RMI nó nói:
Mặc dù về mặt lý thuyết, máy chủ Lệnh gọi phương thức từ xa Java (Java RMI) có thể nằm trên bất kỳ máy chủ nào, nhưng nó thường là cùng một máy chủ với máy chủ mà sổ đăng ký đang chạy và trên một cổng khác ngay cả khi máy chủ nhầm về tên máy chủ hoặc IP của nó. địa chỉ (hoặc có tên máy chủ mà máy khách không thể phân giải được), nó vẫn sẽ xuất tất cả các đối tượng của nó bằng tên máy chủ bị nhầm lẫn đó, nhưng bạn sẽ thấy một ngoại lệ mỗi khi bạn cố gắng nhận một trong những đối tượng đó.
Tôi không hiểu sự khác biệt giữa máy chủ RMI và sổ đăng ký RMI. Tôi nghĩ chúng giống nhau. Cơ quan đăng ký RMI hoạt động như thế nào nếu nó không phải là một loại máy chủ nào đó?
câu trả lời hay nhất
Cơ quan đăng ký RMI là một dịch vụ trong đó các đối tượng từ xa được đăng ký và các đối tượng từ xa đã đăng ký được khách hàng RMI tra cứu. Nếu bạn muốn đối tượng của mình có thể truy cập được từ xa (có thể có nhiều lý do, như bạn liên tục cập nhật logic thay vì gửi nó đến quá trình triển khai mọi lúc, do đó cho phép các cuộc gọi từ xa qua RMI), sau đó đăng ký nó trong sổ đăng ký RMI và sau đó trong RMI Đăng ký nó trong máy khách sẽ tra cứu đối tượng từ xa (sử dụng tham chiếu từ xa của đối tượng) và sau đó có thể gọi các phương thức trên đối tượng từ xa.
Dưới đây làđịnh nghĩa về đăng ký từ Oracle Javadoc
Sổ đăng ký là một đối tượng từ xa ánh xạ tên tới các đối tượng ở xa. Máy chủ đăng ký các đối tượng từ xa của nó với sổ đăng ký để có thể tra cứu chúng. Khi một đối tượng muốn gọi một phương thức trên một đối tượng từ xa, trước tiên nó phải tra cứu đối tượng từ xa. bằng cách sử dụng tên của nó. Sổ đăng ký trả về đối tượng đang gọi một tham chiếu đến đối tượng từ xa, bằng cách sử dụng phương thức từ xa đó có thể được gọi.
Máy chủ RMI là máy chủ thực sự chạy JVM và các đối tượng (đối tượng từ xa). Khách hàng RMI cuối cùng yêu cầu đối tượng này.
Dựa trên những lo ngại của bạn, vâng, máy chủ này (máy chủ RMI) có thể khác với máy chủ đang chạy sổ đăng ký RMI.Bạn có thể hiểu tại sao! Tôi có thể đăng ký các đối tượng từ các máy chủ khác nhau trong cùng một sổ đăng ký RMI và tôi có thể để sổ đăng ký đó chạy trên một máy chủ hoàn toàn khác. Vui lòng đọc thêm bên dưới để được giải thích thêm.
Để máy khách Java RMI liên hệ với máy chủ Java RMI từ xa, trước tiên máy khách phải giữ một tham chiếu đến máy chủ (Đây là nơi đăng ký RMI xuất hiện, cung cấp cho bạn tham chiếu đến máy chủ RMI ). Cuộc gọi phương thức Naming.lookup là cơ chế phổ biến nhất mà máy khách ban đầu có được tham chiếu đến máy chủ từ xa.
Mỗi tham chiếu từ xa chứa tên máy chủ và số cổng của máy chủ, cho phép khách hàng xác định vị trí VM phục vụ một đối tượng từ xa cụ thể (Đây là nơi máy chủ RMI xuất hiện). Khi máy khách Java RMI có tham chiếu từ xa, máy khách sẽ mở kết nối ổ cắm đến máy chủ từ xa bằng cách sử dụng tên máy chủ và cổng được cung cấp trong tham chiếu.
Hãy chắc chắn đọc cái nàyTừ cùng một Câu hỏi thường gặp về Oracle.
Bạn có thể kết nối tốt với sổ đăng ký RMI, nhưng bạn có thể không lấy được các đối tượng từ xa, đó là những gì mọi người báo cáo java.net.UnknownhostException
Đôi khi, điều này có nghĩa là cơ quan đăng ký RMI có thể cung cấp tham chiếu đến đối tượng từ xa nhưng không tìm thấy máy chủ RMI lưu trữ đối tượng từ xa hoặc JVM nơi đối tượng đang chạy hoặc máy khách không thể kết nối.
Do đó, sổ đăng ký RMI và máy chủ RMI là hai thứ khác nhau.
Một sự tương tự có thể là máy chủ HTTP được sử dụng để cung cấp quyền truy cập vào tài nguyên HTTP (tài liệu siêu văn bản) có sẵn trên máy chủ. Tuy nhiên, thông thường tài liệu siêu văn bản sẽ nằm trên cùng một hộp vật lý với máy chủ HTTP, nhưng sổ đăng ký RMI có thể cung cấp quyền truy cập vào các tham chiếu đến các đối tượng từ xa nằm trên một máy chủ khác (máy chủ RMI).
Về máy chủ java - RMI và sổ đăng ký RMI, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/32913180/
Tôi đang viết một ứng dụng RMI. Tôi có thể thực hiện RMI. Dữ liệu được truyền giữa máy khách và máy chủ thông qua RMI. Máy khách phải luôn nhận/cập nhật dữ liệu phía máy chủ. Có thể có một người nghe có thể chuyển hoặc thông báo cập nhật/sửa đổi dữ liệu từ máy chủ không
Tôi đang sử dụng nhà môi giới JMX-RMI để nhắn tin. Tôi có một chương trình java gửi tin nhắn có tên/ID tới một nhóm người nghe/người nghe. Dựa trên các tin nhắn mà người nghe nhận được, chương trình máy khách sẽ chạy tương ứng. Bài đăng này hoạt động tốt nhưng tôi muốn biết
Tôi có một máy chủ RMI, khi chạy trên localhost, sẽ liên kết chính xác với sổ đăng ký RMI (để chứng minh rằng nó được thiết lập chính xác). Mã thực hiện điều này là: void void phơi bàyTickHistoryRe
Tôi muốn lấy địa chỉ IP của từng máy khách ở phía máy chủ và máy chủ trả về một sơ khai cho địa chỉ đó. Có thể được không? Câu trả lời hay nhất hãy xem RemoteServer.getClientHost(). Bạn có thể gọi nó trong việc thực hiện phương thức từ xa. Nhưng khi
Tôi có hai chương trình Java - RMIServer và RMIClient. Nếu tôi khởi chạy chúng dưới dạng hai lệnh gọi Java riêng biệt thì mọi thứ sẽ hoạt động như mong đợi. Đó là $java -cp someclasspath
Hiện đang đọc về RPC và RMI và tôi hơi bối rối về sự khác biệt giữa chúng. Khi triển khai RMI và gRPC, cú pháp về cơ bản giống nhau. Tất cả chúng đều có giao diện xác định các tham số và phản hồi của phương thức. Tất cả chúng đều có thể được tìm thấy trong các thông số
Câu hỏi này đã có câu trả lời ở đây: đã đóng cửa 12 năm trước. Có thể trùng lặp: Sự khác biệt của RMI và CORBA Sự khác biệt giữa RMI và Corba là gì? Câu trả lời hay nhất là RMI
Tôi mới làm quen với java RMI và tôi đang cố gắng tạo một ứng dụng torrent ngang hàng giống như bit 2 trong đó nhiều phiên bản của cùng một máy ngang hàng có thể nằm trên cùng một máy. Điều này có nghĩa là tôi cần có khả năng đăng ký trên cùng một máy
Tôi nhận được một ngoại lệ từ xa khi cố chạy mẫu RMI của mình. Tôi không hiểu tại sao. Tôi chạy chương trình mà không lấy bất kỳ đối số nào cho chính chương trình hoặc JVM. Xin hãy giúp tôi thoát khỏi ngoại lệ. Cảm ơn rất nhiều Đây là ngoại lệ tôi nhận được: Máy chủ ngoại trừ
Về trang Câu hỏi thường gặp của Oracle về Java RMI, trang này cho biết: Trong khi máy chủ Lệnh gọi phương thức từ xa Java (Java RMI) có thể th
Tôi có máy chủ java rmi và máy khách java rmi trên hai máy riêng biệt và khác nhau. Máy chủ về cơ bản là một máy tính Fibonacci. Nó lấy một loạt số và tính toán dãy Fibonacci dựa trên chúng. Máy khách chỉ cần gửi một loạt số đến máy chủ
đóng cửa. Câu hỏi này yêu cầu chi tiết hoặc rõ ràng. Câu trả lời không được chấp nhận vào thời điểm này. Bạn muốn cải thiện câu hỏi này? Thêm chi tiết và làm rõ câu hỏi bằng cách chỉnh sửa bài đăng này Đã đóng 8 năm trước. Cải thiện điều đó
Tôi muốn biết liệu RMI có thể khởi động RMIregistry trên một máy chủ khác với máy chủ cung cấp dịch vụ hay không. Câu trả lời hay nhất Có, có thể, nhưng bất tiện vì bind(), rebind() và unbind() chỉ chấp nhận từ localhost
Tôi đang gặp một số vấn đề khi kết nối với một đối tượng từ xa trong lớp khách hàng của mình. Khi tôi chạy lớp máy khách sau, tôi nhận được ngoại lệ java.rmi.ConnectException. nhập java.rmi.registry.LocateRegis
Tôi đang cố gắng để máy khách trên một máy tính giao tiếp với máy chủ trên máy tính khác thông qua Java RMI. Tôi đã triển khai máy chủ trên máy chủ IP X trên cổng Y. Sau đó tôi cố gắng để máy khách tìm thấy đối tượng từ xa trên máy chủ, nhưng tôi gặp ngoại lệ sau: E
Tôi có RMIClientSocketFactory tùy chỉnh ghi đè "createSocket" để tạo một ổ cắm đặc biệt. Làm cách nào để có được ổ cắm này khi triển khai giao diện từ xa rmi của tôi? (
Tôi gặp sự cố với luồng RMI Reaper, nó không cho phép tất cả các chương trình của tôi chấm dứt vì luồng này không phải là daemon. Tôi tìm thấy thông tin rằng luồng chỉ dừng khi tất cả các đối tượng không được xuất. Vì vậy, tôi có đoạn mã sau để tạo rmi serer. sổ đăng ký
Khi tôi cố chạy máy khách RMI sau khi chạy máy chủ RMI, tôi gặp ngoại lệ sau: Ngoại lệ EncodeInterface: java.lang.ClassCastException: $Proxy3
Tôi muốn viết một bộ thử nghiệm tích hợp hệ thống cho ứng dụng khách RMI. Tôi muốn khởi động máy chủ RMI trong JUnit 3.8.2 và chạy các thử nghiệm này. Có ai đã làm điều này trước đây chưa? Tôi sử dụng một cái gì đó như thế này trong pojo với main
Câu hỏi này đã có câu trả lời: java.rmi.ServerException: RemoteException xảy ra trong chuỗi máy chủ (ClassNotFoundExcept
Tôi là một lập trình viên xuất sắc, rất giỏi!