Java postgres tomcat

12 respostas
M

ola, criei meu arquivo .jar e coloquei no tomcat

quando tento acessar um relatorio criado, do a seguinte erro :

java.security.AccessControlException: access denied (java.io.FilePermission relatorio.jasper read)

se nao me engano tenho que configurar o arquivo catalina.policy, certo ??

mas nao me lembro o que …

alguem pode ajudar

12 Respostas

I

Vou dar minha opnião. Não acho recomendável ficar colocando jar´s adicionais dentro do Tomcat como se fossem dele. Coloque-los no WEB-INF/lib do contexto da tua aplicação. Senão quando fores distribuir tua aplicação aos clientes vais ter de sair “ajustando” os policy´s dos Tomcat´s a cada instalação.

De qualquer forma vais ter de acrescentar permissão a este aquivo no
/CATALINA_HOME/conf/catalina.properties ops, /CATALINA_HOME/conf/catalina.policy se não estou enganado. T+

G

Isso mesmo, você tem que conceder a permissão no arquivo catalina.policy:

permission java.io.FilePermission relatorio.jasper read

Mais informações em: http://tomcat.apache.org/tomcat-5.0-doc/security-manager-howto.html

M

nao deu certo ...

edit o catalina.policy

// ========== WEB APPLICATION PERMISSIONS =====================================


// These permissions are granted by default to all web applications
// In addition, a web application will be given a read FilePermission
// and JndiPermission for all files and directories in its document root.
grant { 
    // Required for JNDI lookup of named JDBC DataSource's and
    // javamail named MimePart DataSource used to send mail
    permission java.util.PropertyPermission "java.home", "read";
    permission java.util.PropertyPermission "java.naming.*", "read";
    permission java.util.PropertyPermission "javax.sql.*", "read";

    permission java.io.FilePermission "escol153.jasper", "read";

e continua dando o erro :

"access denied (java.io.FilePermission relatorio.jasper read)"

tenho que alterar mais alguma coisa ...

[color="red"][size="9"]* Utilize BBCode em seus posts e aumente as chances de resposta - Guilherme Mello[/size][/color]

G

Tente colocar o caminho para o arquivo:

Permissão no diretório:

permission java.io.FilePermission "${tomcat.home}/webapps/<NOME_DA_APLICAÇÃO>/reports/-","read";

Permissão no arquivo específico:

permission java.io.FilePermission "${tomcat.home}/webapps/<NOME_DA_APLICAÇÃO>/reports/relatorio.jasper","read";
M

coloquei no meu arquivo .jnlp

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

e agora da o seguinte erro :

at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
	at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

tenho que assinar o .jar, certo ???

M

tentei colocar no arquivo, na pasta, copiei o .jasper para a pasta onde tem o meu .jar do tomcat

e continua dando o mesmo erro …

G

“marcoscorso”:
tentei colocar no arquivo, na pasta, copiei o .jasper para a pasta onde tem o meu .jar do tomcat

e continua dando o mesmo erro …

Você está rodando o Tomcat com o Security Manager ativado certo ? creio que isso seja uma aplicação web, porque está usando JWS ?

M

meu programa nao eh web, nao quero fazer pra web, to fazendo cliente - servidor mesmo …

dae criei um .jar e mandei rodar no java web start para poder distribuir meu programa na web, mas como cliente - servidor, nao quero programar na web …

particularmente, nao gosto de programar pra web, fazer sites, “nao volto de um sistema com aquela cara de site” e sim de um sistema com tela de login, controle de usuario, tudo, (sei que da pra fazer tudo isso na web) …

entendeu porque to fazendo pelo java web start ???

G

“marcoscorso”:
meu programa nao eh web, nao quero fazer pra web, to fazendo cliente - servidor mesmo …

dae criei um .jar e mandei rodar no java web start para poder distribuir meu programa na web, mas como cliente - servidor, nao quero programar na web …

particularmente, nao gosto de programar pra web, fazer sites, “nao volto de um sistema com aquela cara de site” e sim de um sistema com tela de login, controle de usuario, tudo, (sei que da pra fazer tudo isso na web) …

entendeu porque to fazendo pelo java web start ???

Sim entendi, mas então porque você quer permissão no Security Manager do Tomcat ?

M

pra rodar essa minha aplicacao na web preciso do java web start, correto ???
ou existe outra maneira de eu colocar ela na web ???

pelo que eu sei, o java web start voce “joga” o teu .jar em um servidor, quando o usuario executar, sempre estara com a versao atualizada, alem de executar programas cliente-servidor (me corriga se eu estiver errado, por favor)

entao nao preciso ativar o Security Manager do Tomcat ???
como faco pra ativar e desativar ele ???

G

Para startar o Tomcat com Security Manager ativado:

$CATALINA_HOME/bin/catalina.sh start -security (Unix) %CATALINA_HOME%\bin\catalina start -security (Windows)

M

eu uso o seguinte :

windows xp professional
java 1.5
postgres 8.1.4
tomcat 5.0.28
eclipse 3.2
ireport 1.2.8

mas ainda ta dando esse erro de access denied

o que pode ser ???

Criado 15 de dezembro de 2006
Ultima resposta 18 de dez. de 2006
Respostas 12
Participantes 3