У меня есть следующий класс:
public class TestApplet extends JApplet {
private static final long serialVersionUID = -2137477433249866949L;
private JTextArea display;
@Override
public void init() {
//Create the text area and make it uneditable.
display = new JTextArea( 1, 80 );
display.setEditable( false );
//Set the layout manager so that the text area
//will be as wide as possible.
setLayout( new GridLayout( 1, 0 ) );
//Add the text area to the applet.
add( new JScrollPane( display ) );
String getResult = getResult();
display.setText( getResult );
}
public static void main( final String[] args ) {
System.out.println( new TestApplet().getResult() );
}
private String getResult() {
String getResult = "";
try {
GetMethod getMethod = new GetMethod( "http://www.google.com" );
HttpClient httpClient = new HttpClient();
httpClient.executeMethod( getMethod );
getResult = getMethod.getResponseBodyAsString();
}
catch ( Exception exception ) {
getResult = ExceptionUtils.getFullStackTrace( exception );
}
return getResult;
}
Когда я запускаю его локально, он работает нормально.Однако, когда я запускаю его на сервере приложений, я получаю:
java.security.AccessControlException: access denied (java.net.SocketPermission www.google.com 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 sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getByName(Unknown Source)
at java.net.InetSocketAddress.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at com.test.TestApplet.init(TestApplet.java:40)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Кувшин подписан , поэтому я не уверен, что я делаю здесь неправильно.Кто-нибудь видит какие-либо очевидные проблемы с этим?
Спасибо.
РЕДАКТИРОВАТЬ # 1: Вот источник HTML:
<html>
<title>
1.1 TestApplet
</title>
<body>
<h1>
TestApplet
</h1>
<applet
code="com.test.TestApplet"
archive="testapplet-1.0.0-SNAPSHOT-jar-with-dependencies.jar"
width=100%
height=100%>
</applet>
</body>
</html>
EDIT # 2
Вывод из запрошенной запрошенной команды:
C: \ workspaces \ workspace-helios-main \ testapplet \ target> jarsigner -verify testapplet-1.0.0-SNAPSHOT.jar проверено.
Предупреждение. В этом банке содержатся записи, срок действия сертификата подписавшего которых истек.
Для получения дополнительных сведений перезапустите с параметрами -verbose и -certs.