Solved

URLConnection to HttpURLConnection causes classcastException

Posted on 2002-04-30
15
382 Views
Last Modified: 2008-02-01
I'm having a problem that happens when I run my applet from a cabfile with a test cert, but not when I reference class files residing in a directory. (IE 6)

I am using an HttpURLConnection to read and write to a web server.  I create a URL object url to reference my page and then I execute HttpCnn = (HttpURLConnection)url.openConnection() to create the connection.

Works fine when the class files reside in a folder, but I get a java.lang.classCastException when I package the files in a cab file and sign with a test cert.

Any ideas about why this is happening?

thanks
0
Comment
Question by:garyz31
15 Comments
 
LVL 92

Expert Comment

by:objects
ID: 6982347
Because it's not using a HttpURLConnection.
You cannot assume that a HttpURLConnection is being used, it could be any class that extends URLConnection.
0
 
LVL 1

Author Comment

by:garyz31
ID: 6982535
So, how do I find out what is being used?  Can i control what is being used?
0
 
LVL 1

Author Comment

by:garyz31
ID: 6982542
And, why does packaging the class files in a cab file make a difference?
0
 
LVL 1

Author Comment

by:garyz31
ID: 6982545
So, how do I find out what is being used?  Can i control what is being used?
0
 
LVL 1

Author Comment

by:garyz31
ID: 6982546
And, why does packaging the class files in a cab file make a difference?
0
 
LVL 5

Expert Comment

by:Jan Louwerens
ID: 6982600
You can find out which class is being used by calling:

conn = url.openConnection();
String className = conn.getClass().getName();

I can't help you with the cab file difference, though...
0
 
LVL 92

Expert Comment

by:objects
ID: 6982601
No you can't control what is being used.

What exactly do you mean when you say:
"Works fine when the class files reside in a folder"
Are you still running it as applet?
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 92

Expert Comment

by:objects
ID: 6982603
I'd say your tryinmg to make an SSL connection which will use:
sun.plugin.protocol.jdk12.https.BrowserHttpsURLConnection

The actual classname will be mentioned in the exception.
0
 
LVL 1

Author Comment

by:garyz31
ID: 6982620
If I have put http explicitly in the url, is it possible that the connection is not a HttpURLConnection?

Let me check again to make sure it isn't some problem with referencing the cab file.  I'm running now as <object>.  What appeared to be happening was that the applet ran correctly when the class files were not contained in a cab file, but simply placed in a directory, but not when placed in a cab file.  I'll check again to be sure that I'm not making some other error.

If I have put http explicitly in the url, is it possible that the connection is not a HttpURLConnection?
0
 
LVL 92

Expert Comment

by:objects
ID: 6982629
> is it possible that the connection is not a HttpURLConnection?

Definitely, there is no guarantee what the class of the returned object will be except that it will be a subclass of URLConnection. And different objects will be returned by different JVM's.

So what class is actually being returned?
0
 
LVL 1

Author Comment

by:garyz31
ID: 6983249
So is it better to use only the methods of the URLConnection object along with a URLencoder, etc.

If I always have to write URLConnection code, of what value is HttpConnection?
0
 
LVL 92

Accepted Solution

by:
objects earned 100 total points
ID: 6984437
> So is it better to use only the methods of the URLConnection object

Definitely.

> of what value is HttpConnection?

HttpURLConnection is simply a particular implementation of URLCOnnection.
0
 
LVL 16

Expert Comment

by:heyhey_
ID: 6985888
in fact HttpURLConnection is abstract class ...
0
 
LVL 9

Expert Comment

by:Venci75
ID: 7992781
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:
Answered by: objects
Please leave any comments here within the next seven days.
 
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
 
Venci75
EE Cleanup Volunteer
0
 

Expert Comment

by:SpideyMod
ID: 8048342
per recommendation

SpideyMod
Community Support Moderator @Experts Exchange
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
reasons why a "inside Menu" would not appear for a web server 6 56
stackato and cloud 4 74
servlet example issue 6 33
eclipse apache tomcat admin console 52 73
For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

27 Experts available now in Live!

Get 1:1 Help Now