Java Web Start, XStream e AccessControlException

1 resposta
Java_Player

Nunca sei se coloco minha dúvida no Java Básico ou no Java Avançado.

É o seguinte:

Fiz uma aplicação que solicita informações de um serlet no servidor. Esse servlet devolve um arquivo XML, que a aplicação cliente vai ler e deserializar usando a API XStream.

A aplicação funcionou normal no computador cliente, mas quando eu usei Java Web Start para disponibilizar a aplicação deu um AccessControlException:

Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
	at com.thoughtworks.xstream.XStream.<init>(XStream.java:273)
	at com.thoughtworks.xstream.XStream.<init>(XStream.java:297)
	at teste.Cliente.getClientes(Cliente.java:106)
	at teste.Principal$7.actionPerformed(Principal.java:243)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
	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.checkMemberAccess(Unknown Source)
	at java.lang.Class.checkMemberAccess(Unknown Source)
	at java.lang.Class.getDeclaredFields(Unknown Source)
	at com.thoughtworks.xstream.core.JVM.<clinit>(JVM.java:24)
	... 28 more

No código da minha aplicação a Exceção foi na seguinte linha:

XStream xstream = new XStream();

O que pode ser?

Será que eu preciso de assinar o jar??? A assinatura não é necessária somente para acessar recursos da máquina que está rodando o aplicativo? Eu não estou acessando arquivo nenhum.

Obrigado.

1 Resposta

furetz

Também tive esse problema.

Mas pra resolver isso você precisa assinar sim todos os .jar da aplicação e no jnlp você tem q colocar o elemento security entre information e resources.

<security> <all-permissions/> </security>

Tirado do link:
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=next_topic&f=53&t=000410&go=newer

Falow

Criado 19 de setembro de 2006
Ultima resposta 25 de out. de 2006
Respostas 1
Participantes 2