• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Head First Design patterns: Proxy : Java RMI the big picture

 
Ranch Hand
Posts: 87
  • Number of slices to send:
    Optional 'thank-you' note:
I am following the "simple" example given in Proxy Chapter





1. I placed the common interface in client/ and server/ folder. MyRemoteClient class in client/ and MyRemoteImpl class in server/
2. Ran or in cmd terminal and bash (one try each, not at the same time)
3. Later moved to server/ folder and compiled the class (tried to run, but gave doesn't main)
4. Later moved to client/ folder and compiled the class and run, but it is giving me an error.



Am I doing some mistake in the steps here?
 
Bartender
Posts: 2421
13
  • Number of slices to send:
    Optional 'thank-you' note:
RMI is an old technology.
Do you find this helpful https://stackoverflow.com/questions/13302471/java-rmi-notboundexception ?

Also, is your server side of the RMI application up and running?
 
Bhaskar Bantupalli
Ranch Hand
Posts: 87
  • Number of slices to send:
    Optional 'thank-you' note:
No

(tried to run, but gave doesn't main)

I have run interface using command line then, not the class/ But still get an error
 
Saloon Keeper
Posts: 27851
196
  • Number of slices to send:
    Optional 'thank-you' note:
RMI is indeed an old (but useful) technology. It is not common much anymore as such, although I think it's probably embedded into EJB version 3's RMIIIOP remote bean interface.

It was sort of a parallel to the definitely-dead CORBA, but with some key differences.

1. It was strictly method-oriented. CORBA attempted to present remote access to Object methods as opposed to RMI's procedural methods (this did not end well for CORBA). CORBA also did not play well with firewalls.

2. It was strictly Java. CORBA was OS and language independent. Java RMI requires that both the client and server be running Java, althought the OS's involved are not important.

3. Most fatally, RMI employs Java Serialization. The problem with the build-in Serialization mechanism of Java is that it is opaque and subject to change. Meaning that if a Java RMI client was running a JVM release that was incompatible with the Serialization encoding of the RMI server, communications would fail. This was a royal pain.

As a better solution to CORBA and RMI, SOAP was invented. However, SOAP's protocols were heavy (XML) AND onerous to set up. Eventually SOAP was replaced by Web Services, which serialize using simple text formats such as JSON, YAML, or even general text.

RMI remains a viable solution to this day, but only for very limited cases. It's best used strictly for in-house work only. Unlike CORBA, RMI can negotiate firewalls, but since it doesn't use popular ports like port 80, a lot of pathways from client to server might not have the RMI port open (including my own servers!). And then there are its other liabilities, as I described above.
 
Himai Minh
Bartender
Posts: 2421
13
  • Number of slices to send:
    Optional 'thank-you' note:
Hi, Bhaskar,
I think your server side of the RMI application needs to start first.

Hi, Tim,
I think RMI is replaced by Spring MVC/WebFlux technologies.
 
Bhaskar Bantupalli
Ranch Hand
Posts: 87
  • Number of slices to send:
    Optional 'thank-you' note:
I am trying to run the sample code given code given in the book. I ran rmiregistry <port> first, and then compiled server code from different terminal. It gave me an error. The code is same as what is in the textbook and what I put it here.
 
Tim Holloway
Saloon Keeper
Posts: 27851
196
  • Number of slices to send:
    Optional 'thank-you' note:

Himai Minh wrote:Hi, Tim,
I think RMI is replaced by Spring MVC/WebFlux technologies.



Not so. Spring is not part of the Java standard. RMI is. Also RMI is not a Model/View/Controller architecture. It is literally what its name says: Remote Method Invocation. It allows objects to register themselves as part of the RMI server's JVM and have their methods invoked from a remote client.

There are many "replacements" for RMI. Spring itself offers more than one, I'd say and Web Services (with or without Spring support) is one of them. But RMI is still RMI.
reply
    Bookmark Topic Watch Topic
  • New Topic
vceplus-200-125    | boson-200-125    | training-cissp    | actualtests-cissp    | techexams-cissp    | gratisexams-300-075    | pearsonitcertification-210-260    | examsboost-210-260    | examsforall-210-260    | dumps4free-210-260    | reddit-210-260    | cisexams-352-001    | itexamfox-352-001    | passguaranteed-352-001    | passeasily-352-001    | freeccnastudyguide-200-120    | gocertify-200-120    | passcerty-200-120    | certifyguide-70-980    | dumpscollection-70-980    | examcollection-70-534    | cbtnuggets-210-065    | examfiles-400-051    | passitdump-400-051    | pearsonitcertification-70-462    | anderseide-70-347    | thomas-70-533    | research-1V0-605    | topix-102-400    | certdepot-EX200    | pearsonit-640-916    | itproguru-70-533    | reddit-100-105    | channel9-70-346    | anderseide-70-346    | theiia-IIA-CIA-PART3    | certificationHP-hp0-s41    | pearsonitcertification-640-916    | anderMicrosoft-70-534    | cathMicrosoft-70-462    | examcollection-cca-500    | techexams-gcih    | mslearn-70-346    | measureup-70-486    | pass4sure-hp0-s41    | iiba-640-916    | itsecurity-sscp    | cbtnuggets-300-320    | blogged-70-486    | pass4sure-IIA-CIA-PART1    | cbtnuggets-100-101    | developerhandbook-70-486    | lpicisco-101    | mylearn-1V0-605    | tomsitpro-cism    | gnosis-101    | channel9Mic-70-534    | ipass-IIA-CIA-PART1    | forcerts-70-417    | tests-sy0-401    | ipasstheciaexam-IIA-CIA-PART3    | mostcisco-300-135    | buildazure-70-533    | cloudera-cca-500    | pdf4cert-2v0-621    | f5cisco-101    | gocertify-1z0-062    | quora-640-916    | micrcosoft-70-480    | brain2pass-70-417    | examcompass-sy0-401    | global-EX200    | iassc-ICGB    | vceplus-300-115    | quizlet-810-403    | cbtnuggets-70-697    | educationOracle-1Z0-434    | channel9-70-534    | officialcerts-400-051    | examsboost-IIA-CIA-PART1    | networktut-300-135    | teststarter-300-206    | pluralsight-70-486    | coding-70-486    | freeccna-100-101    | digitaltut-300-101    | iiba-CBAP    | virtuallymikebrown-640-916    | isaca-cism    | whizlabs-pmp    | techexams-70-980    | ciscopress-300-115    | techtarget-cism    | pearsonitcertification-300-070    | testking-2v0-621    | isacaNew-cism    | simplilearn-pmi-rmp    | simplilearn-pmp    | educationOracle-1z0-809    | education-1z0-809    | teachertube-1Z0-434    | villanovau-CBAP    | quora-300-206    | certifyguide-300-208    | cbtnuggets-100-105    | flydumps-70-417    | gratisexams-1V0-605    | ituonline-1z0-062    | techexams-cas-002    | simplilearn-70-534    | pluralsight-70-697    | theiia-IIA-CIA-PART1    | itexamtips-400-051    | pearsonitcertification-EX200    | pluralsight-70-480    | learn-hp0-s42    | giac-gpen    | mindhub-102-400    | coursesmsu-CBAP    | examsforall-2v0-621    | developerhandbook-70-487    | root-EX200    | coderanch-1z0-809    | getfreedumps-1z0-062    | comptia-cas-002    | quora-1z0-809    | boson-300-135    | killtest-2v0-621    | learncia-IIA-CIA-PART3    | computer-gcih    | universitycloudera-cca-500    | itexamrun-70-410    | certificationHPv2-hp0-s41    | certskills-100-105    | skipitnow-70-417    | gocertify-sy0-401    | prep4sure-70-417    | simplilearn-cisa    |
http://www.pmsas.pr.gov.br/wp-content/    | http://www.pmsas.pr.gov.br/wp-content/    |