File tree Expand file tree Collapse file tree
main/java/com/baeldung/rmi
test/java/com/baeldung/rmi Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <project xmlns =" http://maven.apache.org/POM/4.0.0" xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
2+ xsi : schemaLocation =" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
3+ <modelVersion >4.0.0</modelVersion >
4+
5+ <groupId >com.baeldung.rmi</groupId >
6+ <artifactId >java-rmi</artifactId >
7+ <version >1.0-SNAPSHOT</version >
8+ <packaging >jar</packaging >
9+
10+ <parent >
11+ <groupId >com.baeldung</groupId >
12+ <artifactId >parent-modules</artifactId >
13+ <version >1.0.0-SNAPSHOT</version >
14+ </parent >
15+
16+ <properties >
17+ <project .build.sourceEncoding>UTF-8</project .build.sourceEncoding>
18+ </properties >
19+
20+ </project >
Original file line number Diff line number Diff line change 1+ package com .baeldung .rmi ;
2+
3+ import java .io .Serializable ;
4+
5+ public class Message implements Serializable {
6+
7+ private String messageText ;
8+
9+ private String contentType ;
10+
11+ public Message () {
12+ }
13+
14+ public Message (String messageText , String contentType ) {
15+
16+ this .messageText = messageText ;
17+ this .contentType = contentType ;
18+ }
19+
20+ public String getMessageText () {
21+ return messageText ;
22+ }
23+
24+ public void setMessageText (String messageText ) {
25+ this .messageText = messageText ;
26+ }
27+
28+ public String getContentType () {
29+ return contentType ;
30+ }
31+
32+ public void setContentType (String contentType ) {
33+ this .contentType = contentType ;
34+ }
35+
36+ }
Original file line number Diff line number Diff line change 1+ package com .baeldung .rmi ;
2+
3+ import java .rmi .Remote ;
4+ import java .rmi .RemoteException ;
5+
6+ public interface MessengerService extends Remote {
7+
8+ public String sendMessage (String clientMessage ) throws RemoteException ;
9+
10+ public Message sendMessage (Message clientMessage ) throws RemoteException ;
11+ }
Original file line number Diff line number Diff line change 1+ package com .baeldung .rmi ;
2+
3+ import java .rmi .RemoteException ;
4+ import java .rmi .registry .LocateRegistry ;
5+ import java .rmi .registry .Registry ;
6+ import java .rmi .server .UnicastRemoteObject ;
7+
8+ public class MessengerServiceImpl implements MessengerService {
9+
10+ public String sendMessage (String clientMessage ) {
11+
12+ String serverMessage = null ;
13+ if (clientMessage .equals ("Client Message" )) {
14+ serverMessage = "Server Message" ;
15+ }
16+
17+ return serverMessage ;
18+ }
19+
20+ public void createStubAndBind () throws RemoteException {
21+
22+ MessengerService stub = (MessengerService ) UnicastRemoteObject .exportObject ((MessengerService ) this , 0 );
23+ Registry registry = LocateRegistry .createRegistry (1099 );
24+ registry .rebind ("MessengerService" , stub );
25+ }
26+
27+ public Message sendMessage (Message clientMessage ) throws RemoteException {
28+
29+ Message serverMessage = null ;
30+ if (clientMessage .getMessageText ().equals ("Client Message" )) {
31+ serverMessage = new Message ("Server Message" , "text/plain" );
32+ }
33+
34+ return serverMessage ;
35+ }
36+
37+ }
Original file line number Diff line number Diff line change 1+ package com .baeldung .rmi ;
2+
3+ import static org .junit .Assert .assertEquals ;
4+ import static org .junit .Assert .fail ;
5+
6+ import java .rmi .NotBoundException ;
7+ import java .rmi .RemoteException ;
8+ import java .rmi .registry .LocateRegistry ;
9+ import java .rmi .registry .Registry ;
10+
11+ import org .junit .BeforeClass ;
12+ import org .junit .Test ;
13+
14+ public class JavaRMIIntegrationTest {
15+
16+ @ BeforeClass
17+ public static void whenRunServer_thenServerStarts () {
18+
19+ try {
20+ MessengerServiceImpl server = new MessengerServiceImpl ();
21+ server .createStubAndBind ();
22+ } catch (RemoteException e ) {
23+ fail ("Exception Occurred" );
24+ }
25+ }
26+
27+ @ Test
28+ public void whenClientSendsMessageToServer_thenServerSendsResponseMessage () {
29+
30+ try {
31+ Registry registry = LocateRegistry .getRegistry ();
32+ MessengerService server = (MessengerService ) registry .lookup ("MessengerService" );
33+ String responseMessage = server .sendMessage ("Client Message" );
34+
35+ String expectedMessage = "Server Message" ;
36+ assertEquals (responseMessage , expectedMessage );
37+ } catch (RemoteException e ) {
38+ fail ("Exception Occurred" );
39+ } catch (NotBoundException nb ) {
40+ fail ("Exception Occurred" );
41+ }
42+ }
43+
44+ }
Original file line number Diff line number Diff line change 8787 <module >jackson</module >
8888 <!-- <module>persistence-modules/java-cassandra</module> -->
8989 <module >vavr</module >
90- <module >java-lite</module >
91- <module >java-vavr-stream</module >
90+ <module >java-lite</module >
91+ <module >java-rmi</module >
92+ <module >java-vavr-stream</module >
9293 <module >javax-servlets</module >
9394 <module >javaxval</module >
9495 <module >jaxb</module >
You can’t perform that action at this time.
0 commit comments