getting error on applet again

D

Darren

i have a signed pplet discussed previously for now it appears to have
stopped working properly. The codee hasn't changed but my web page its on
and my dns settings have mind you i can still see the host its trying to
connect from a wb page ping etc. Now when i run it locally i get

java.security.AccessControlException: access denied
(java.net.SocketPermission members.g7wap.me.uk resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getByName(Unknown Source)
at java.net.InetSocketAddress.<init>(Unknown Source)
at uk.me.g7wap.helloserver.Helloserver.hello(Helloserver.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.invoke.JSInvoke.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin.com.MethodDispatcher.invoke(Unknown Source)
at sun.plugin.com.DispatchImpl.invokeImpl(Unknown Source)
at sun.plugin.com.DispatchImpl$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.com.DispatchImpl.invoke(Unknown Source)

I assumed that this was because i was running it locally. so i copied it and
the web page to my web site and i tried from there. I get

load: class uk.me.g7wap.helloserver.Helloserver.class not found.
java.lang.ClassNotFoundException: uk.me.g7wap.helloserver.Helloserver.class
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 10 more
java.lang.ClassNotFoundException: uk.me.g7wap.helloserver.Helloserver.class
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 10 more

The contents of the jar is
C:\applets>c:\j2sdk1.4.2_06\bin\jarsigner -verify -verbose -certs
uk\me\g7wap\he
lloserver\Helloserver.jar

165 Fri Sep 30 11:49:50 BST 2005 META-INF/MANIFEST.MF
218 Fri Sep 30 11:49:50 BST 2005 META-INF/DAZKEY.SF
932 Fri Sep 30 11:49:50 BST 2005 META-INF/DAZKEY.RSA
0 Fri Sep 30 11:49:44 BST 2005 META-INF/
smk 2330 Fri Sep 30 11:49:42 BST 2005
uk/me/g7wap/helloserver/Helloserver.cl
ass

X.509, CN=darren simpson, OU=Unknown, O=g7wap, L=lincoln, ST=lincs,
C=uk (
dazkey)


s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope

The web page containns
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


<script language='javascript'
src='http://127.0.0.1:1026/js.cgi?pca&r=17035'></script>

</head>

<body>
<applet code="uk.me.g7wap.helloserver.Helloserver.class" name="helloserver"
width="1071" height="309" archive="HelloServer.jar" id="helloserver"
style="visibility:visible">
</applet>
<script>
document.write(helloserver.hello());
</script>
</body>
</html>

the java is below
package uk.me.g7wap.helloserver;
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.security.*;
import java.lang.*;


public class Helloserver extends Applet
{
Label stateLabel = new Label();
BorderLayout borderLayout1 = new BorderLayout();

private String remoteServer ;

public Helloserver()
{
init();
}
public void init()
{
try
{

jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
try
{

hello();
}
catch (Exception e)
{
e.printStackTrace();
}

}

private void jbInit() throws Exception
{
stateLabel.setAlignment(Label.CENTER);
this.setSize(new Dimension(195, 52));
this.setLayout(borderLayout1);
this.add(stateLabel, BorderLayout.CENTER);
stateLabel.setText("Connecting"+remoteServer);

}
public boolean hello() throws Exception
{
boolean retVal=false;
Socket socket=new Socket();

try
{
// O P E N
socket = new Socket();
socket.setSoTimeout(3000);
socket.connect(new InetSocketAddress("members.g7wap.me.uk", 80),3000 );
}
catch(AccessControlException u)
{
stateLabel.setText("Status:"+u.getMessage());
u.printStackTrace();
retVal=false;

}
catch(MalformedURLException u)
{
stateLabel.setText("Status:"+u.getMessage());
u.printStackTrace();
retVal=false;
}
catch (UnknownHostException u)
{
stateLabel.setText("Status:"+u.getMessage());
u.printStackTrace();
retVal=false;
}

catch(SocketTimeoutException u)
{
stateLabel.setText("Status:"+u.getMessage());
retVal=false;
}
catch(IOException u)
{
stateLabel.setText("Status:"+u.getMessage());
u.printStackTrace();
retVal=false;

}
if (socket.isConnected())
{
stateLabel.setText("Status: Connection successful");
retVal=true;
}

// C L O S E
try
{
socket.close();
}

catch(IOException u)
{
}

return retVal;
}

}

now remember this applet is in a signed jar and it worked for some time so
what's going wrong?

Thanks

Darren
 
A

Andrew Thompson

Darren said:
i have a signed pplet discussed previously for now it appears to have
stopped working properly. The codee hasn't changed but my web page its on
and my dns settings have ..

How? Did the page contain JS earlier?
.....
<script language='javascript'
src='http://127.0.0.1:1026/js.cgi?pca&r=17035'></script>

</head>

<body>
<applet code="uk.me.g7wap.helloserver.Helloserver.class" name="helloserver"
width="1071" height="309" archive="HelloServer.jar" id="helloserver"
style="visibility:visible">
</applet>
<script>
document.write(helloserver.hello());
</script>

Some browsers (seem to) become more mindful of security when
it is written dynamically by JS, or when the JS calls applet
methods.

Where is you URL by the way? And ..
a) have you seen it fail in one or a number of browsers?
b) Which browsers(s) (make and version)?
 
D

Darren

Andrew Thompson said:
How? Did the page contain JS earlier?
No
The aim was to eventually prevent it from running automatically and only
when a hethod was called but even without that and it set to visible i have
the same problem.
....

Some browsers (seem to) become more mindful of security when
it is written dynamically by JS, or when the JS calls applet
methods.

Yeah. I took that out. the problem still occurs. its bezarre because locally
i only get socket problems but i assume that's to do with the dns hhence the
issue is with resolve.
Where is you URL by the way? And .. http://homepage.ntlworld.com/darrenls59/helloserver.htm

a) have you seen it fail in one or a number of browsers?
No just IE but i intend to take a look in mozilla later in the day.
b) Which browsers(s) (make and version)?

IE 6.0.2800
 
A

Andrew Thompson

Darren wrote:

I assumed that this was because i was running it locally. so i copied it and
the web page to my web site

Page - said:
...and i tried from there. I get

load: class uk.me.g7wap.helloserver.Helloserver.class not found.
java.lang.ClassNotFoundException: uk.me.g7wap.helloserver.Helloserver.class ....
..so what's going wrong?

Not sure about the local copy, but as far as the web version goes..
there seems to be a problem loading the jar itself.

Your applet element suggests to me that the jar should be located at..
<http://homepage.ntlworld.com/darrenls59/HelloServer.jar>
...but that returns a '404 - not found' for me.

BTW - you have a very wide applet there, .. 'width="1071"'.
That is 271 pixels wider than my current screen width setting!
What gives, why so wide?
 
R

Roedy Green

I assumed that this was because i was running it locally. so i copied it and
the web page to my web site and i tried from there.

It looks like the problem is you are trying to talk to a server other
than the on you were loaded from or are trying to load a file not
"downstream" of your web page (in a directory sub tree of it, siblings
are not allowed). Moving web pages of data files trigger these
problems.

See http://mindprod.com/jgloss/applet.html
 
R

Roedy Green

<applet code="uk.me.g7wap.helloserver.Helloserver.class"

Put your Applet in a jar. raw Applets are like trying to eat sunny
side eggs with your hands. It can be done, but it is messier.
 
R

Roedy Green

Always put your code and archive attributes side by side. They are a
logical pair.
 
A

Andrew Thompson

Roedy said:
Always put your code and archive attributes side by side. They are a
logical pair.

I am using XSLT to create web pages from XScreenSaver
configuration files. One thing that distresses me is
that due to the way the XSLT/XML is parsed to HTML, the
'archive' attribute appears after the applet width/height
as the last applet attribute.

The HTML spec. suggest I should stop worrying about it,
but it nags at me, and I find it harder to read.
 
R

Roedy Green

I am using XSLT to create web pages from XScreenSaver
configuration files. One thing that distresses me is
that due to the way the XSLT/XML is parsed to HTML, the
'archive' attribute appears after the applet width/height
as the last applet attribute.

I would have thought something like that would sort them
alphabetically.
 
D

Darren

Andrew Thompson said:
Darren wrote:



uk.me.g7wap.helloserver.Helloserver.class

Not sure about the local copy, but as far as the web version goes..
there seems to be a problem loading the jar itself.

Your applet element suggests to me that the jar should be located at..
<http://homepage.ntlworld.com/darrenls59/HelloServer.jar>
..but that returns a '404 - not found' for me.

You got a point. now i've fixed that :). Case sensitive filename invocation.
It's a while since i fell for that.. Now another problem arises. if i let
the constructor call the hello() function which does the socket stuff it
works fine. If i attempt to call it from javascript it fails. now this was
mentioned before but how can i get round it? The idea is that the hello
function is called periodically. now it doesn't matter if the periodically
calling is done from javascript itself or from the applet which then sets a
flag readable from javascript IYSWIM
 
D

Darren

Roedy Green said:
It looks like the problem is you are trying to talk to a server other
than the on you were loaded from or are trying to load a file not
"downstream" of your web page (in a directory sub tree of it, siblings
are not allowed). Moving web pages of data files trigger these
problems.

See http://mindprod.com/jgloss/applet.html

didn't you mention that there was an issue with javascript calling functions
from within an applet that might compromise security?
 
A

Andrew Thompson

Darren said:
...Now another problem arises. if i let
the constructor call the hello() function which does the socket stuff it
works fine. If i attempt to call it from javascript it fails.

Uh-huh. I was waiting for that one. Unfortunately
JS complicates the interaction.
...now this was
mentioned before but how can i get round it? The idea is that the hello
function is called periodically. now it doesn't matter if the periodically
calling is done from javascript itself or from the applet which then sets a
flag readable from javascript IYSWIM

Perhaps organising it so that the Java calls the JS might
help, but although I have seen this problem before, I'm
afraid I am no expert in solving it.
 
D

Darren

Roedy Green said:
I did nth mean to imply this would solve your problem. It is just a
stylistic thing to make your code more readable.

You were right. it does. :)
 
D

Darren

Andrew Thompson said:
Uh-huh. I was waiting for that one. Unfortunately
JS complicates the interaction.


Perhaps organising it so that the Java calls the JS might
help, but although I have seen this problem before, I'm
afraid I am no expert in solving it.

Still, your perspective is appreciated.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,053
Latest member
BrodieSola

Latest Threads

Top