Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > RMI and JDK versions: Interoperability

Reply
Thread Tools

RMI and JDK versions: Interoperability

 
 
varlagas@yahoo.com
Guest
Posts: n/a
 
      07-25-2005
Esmond Pitt, in his java.rmi book, mentions that "it is perfectly
possible to deploy systems where servers use a different version of the
JDK from clients".

Since the book is a 2001 one (no newer books on RMI exist), it
discusses JDK 1.3. Indeed, I have tested interoperability of a 1.2.2
client with a 1.3.1 server in two different environment and it works
just fine.

However, with a 1.4.2 server I get the following exception:

java.rmi.UnmarshalException: error unmarshalling return; nested
exception is:
java.lang.ClassNotFoundException: sun.util.calendar.ZoneInfo
java.lang.ClassNotFoundException: sun.util.calendar.ZoneInfo
at java.lang.Throwable.<init>(Throwable.java:96)
at java.lang.Exception.<init>(Exception.java:44)
at
java.lang.ClassNotFoundException.<init>(ClassNotFo undException.java:7
1)
at
java.io.ObjectInputStream.inputObject(ObjectInputS tream.java:1200)
at
java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:479)
at
java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:234)
at
sun.rmi.server.UnicastRef.unmarshalValue(UnicastRe f.java:304)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:9 6)
at
npmt.cli.common.base.NVNovaCommonDataImpl_Stub.get ServerTimezone(NVNo
vaCommonDataImpl_Stub.java:157)
at
npmt.cli.common.base.NovaCommonData.getTheTimezone (NovaCommonData.jav
a:639)
at
npmt.cli.common.NovaLogon.buttonOk_ActionPerformed (NovaLogon.java:76)

Could you please advise whether it is possible to have a 1.2.2 client /
1.4.2 server configuration?

Many thanks in advance!

Panagiotis Varlagas.

 
Reply With Quote
 
 
 
 
varlagas@yahoo.com
Guest
Posts: n/a
 
      07-25-2005
Answering my own question: See
http://www-1.ibm.com/support/docview...id=swg24006847. The problem
is that, in 1.4.2, asking the TimeZone class for the singleton default
time zone returns to you a class (sun.util.calendar.ZoneInfo) new in
JDK 1.4, rather than java.util.SimpleTimeZone, which it did in 1.3.1
(and 1.2.2). Hence, if you wish to have a scenario whereby the client
is at the 1.3.1 (or 1.2.2) version and the server at the 1.4.2 one,
then, you really can't - they don't interoperate. (There are ways to
work around this however, such as creating classes such as XxxTimeZone
and XxxTimeZoneData, them being adaptations of the 1.3.1- TimeZone and
TimeZoneData respectively. Then, use the XxxTimeZone on the server-side
rather than the 1.4.2-provided TimeZone class, in order to create the
"good ol'" (or "bad ol'" for that matter) SimpleTimeZone object that
your client likes.

Panagiotis.

http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
> Esmond Pitt, in his java.rmi book, mentions that "it is perfectly
> possible to deploy systems where servers use a different version of the
> JDK from clients".
>
> Since the book is a 2001 one (no newer books on RMI exist), it
> discusses JDK 1.3. Indeed, I have tested interoperability of a 1.2.2
> client with a 1.3.1 server in two different environment and it works
> just fine.
>
> However, with a 1.4.2 server I get the following exception:
>
> java.rmi.UnmarshalException: error unmarshalling return; nested
> exception is:
> java.lang.ClassNotFoundException: sun.util.calendar.ZoneInfo
> java.lang.ClassNotFoundException: sun.util.calendar.ZoneInfo
> at java.lang.Throwable.<init>(Throwable.java:96)
> at java.lang.Exception.<init>(Exception.java:44)
> at
> java.lang.ClassNotFoundException.<init>(ClassNotFo undException.java:7
> 1)
> at
> java.io.ObjectInputStream.inputObject(ObjectInputS tream.java:1200)
> at
> java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:479)
> at
> java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:234)
> at
> sun.rmi.server.UnicastRef.unmarshalValue(UnicastRe f.java:304)
> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:9 6)
> at
> npmt.cli.common.base.NVNovaCommonDataImpl_Stub.get ServerTimezone(NVNo
> vaCommonDataImpl_Stub.java:157)
> at
> npmt.cli.common.base.NovaCommonData.getTheTimezone (NovaCommonData.jav
> a:639)
> at
> npmt.cli.common.NovaLogon.buttonOk_ActionPerformed (NovaLogon.java:76)
>
> Could you please advise whether it is possible to have a 1.2.2 client /
> 1.4.2 server configuration?
>
> Many thanks in advance!
>
> Panagiotis Varlagas.


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
JDK 1.6.0_15 and JDK 1.5.0_20 released Roedy Green Java 3 08-06-2009 02:20 AM
RMI and 64bit to 32bit interoperability Holmbrew Java 2 03-24-2009 12:14 AM
regarding JDk 141 and JDK 122 for linux 64 bit Platform Jaggu Java 3 01-08-2007 10:47 AM
What is the difference between J2EE, JDK, JDK-SDK, JRE and J2SE packages ? Ulf Meinhardt Java 0 08-10-2006 07:12 PM
Interoperability between Websphere and Sun JDK Sascha Moellering Java 2 08-11-2004 02:44 AM



Advertisments