Solved

URLConnection to HttpURLConnection causes classcastException

Posted on 2002-04-30
15
381 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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
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

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:

760 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

22 Experts available now in Live!

Get 1:1 Help Now