Dia, srs estou com um problema que está complicado para resolver.
Estou tentando criar um arquivo txt na rede eu um diretorio que está com permissão full. Mais nao criar o arquivo. motivo: “Acesso Negado”.
Na maquina de testes o arquivo é criado normalmente e quando executo o programa no ambiente de produção da o erro de acesso negado.
As diferença entre as maquina são:
De testes: O acesso é pela rede no ip da maquina de testes
De Produção: O acesso vem por fora da rede
Att.
Leandrooooo
So para ficar mais claro.
Tenho:
maquina A - TESTE
maquina B - Produção
maquina C - Onde será gravado o arquivo.
Caminho iguais mais na maquina de produção não grava já no de testes grava normalmente.
Fala garoto!
É o seguinte, tive um problema semelhante aqui na empresa, logo você deve verificar duas hipóteses.
Primeira: saber se você possui permissão para criar o arquivo no servidor.
Segunda: Verificar se o firewall estar bloqueado esse processo.
Valew, vou dar uma olhada…
Arquivo eu crio sem problemas no servidor.
Acho que vai ser o firewall q deve estar bloqueando a criação do arquivo quando vem por fora da rede.
Cara, continua precisando da sua ajuda, já que passou por isso.
Olha que estranho, quando chamo o servlet para criar o arquivo tem dois erro diferente com caminhos diferentes, só que os dois caminhos são verdadeiros, ou seja, existe na maquina e são o mesmo diretorio, o que pode estar acontecendo? Estamos vendo no firewall e pelo que estou sendo informado não está bloqueando nada.
java.io.FileNotFoundException: \\IP DA MAQUINA\Comum\wk\20131205174129.txt (Acesso negado)
java.io.FileOutputStream.open(Native Method)
java.io.FileOutputStream.<init>(Unknown Source)
java.io.FileOutputStream.<init>(Unknown Source)
java.io.FileWriter.<init>(Unknown Source)
Enviar.doPost(Enviar.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Esse erro é o mapeamento que criei no servidor web
java.io.FileNotFoundException: Q:\wk\20131205174129.txt (O sistema não pode encontrar o caminho especificado)
java.io.FileOutputStream.open(Native Method)
java.io.FileOutputStream.<init>(Unknown Source)
java.io.FileOutputStream.<init>(Unknown Source)
java.io.FileWriter.<init>(Unknown Source)
Enviar.doPost(Enviar.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Desde já obrigado.
leandrooooo
Como esta o seu método ou sua classe que cria este arquivo?
Segue abaixo:
File diretorio = new File("\\IP\\Comum\\workflow");
//File diretorio = new File("Q:/workflow");
String arqResp = diretorio.getPath()+"/"+apr_codaprov+apr_pedaca+".txt";
File arquivo = new File(arqResp);
Writer dados = new BufferedWriter(new FileWriter(arquivo));
dados.write("APROVADOR="+apr_codaprov+"|PEDIDO="+apr_pedido+"|STATUS="+apr_status.substring(0,8)+"|MOTIVO="+apr_motivo+"|\r\n" );
dados.flush();
dados.close()
É tudo o mesmo sistema operacional? Use File.Separator ao invés de “”
Só a maquina que está o firewall que é linux o resto é tudo win.
Acho que o problema é no firewall, mais não sei o que pode estar pegando, pois como ja disse na rede interna o programa roda normalmente e quando faço o acesso externo e que tem que passar pelo firewall apresenta os erro já citado.
Complicado?!?!?!?!?!?!
Vai saber o que pode estar acontecendo!
Faz o seguinte, starta o tomcat com o teu usuário de rede no servidor. Em alguns casos e necessário que se de permissão para o serviço.
basta procurar o serviço do tomcat no painel de Serviços. para acessar se usa o atalho services.msc no executar.
Depois click com o botão direito no serviço do tomcat depois em Propriedades, na aba Logon marque a opção Esta Conta
e informe seu usuário e senha de rede para finalizar.
Cara, deu certo, inseri o usuário de rede funcionou.
Eu nao entendi o pq que foi necessário inserir esse usuario, sendo que na maquina de testes não tem?
E outra, servidor web estava em outra maquina e funcionava redondinho sem o usuario de rede (Não me lembro mais acho q quando era esta maquina o tomcat era 5.x), foi a gente trocar de maquina q comecou a dar problema e quando trocamos de maquina instalei o tomcar 7.x.
Mais muito obrigado pela ajuda.
Att.
Leandroooo
Blz,!!
Porém o correto seria você criar uma pasta fora do tomcat e ativar permissão para criar arquivo na mesma, e caso necessário compartilha-la.
Neste caso você não tem permissão para criar arquivo dentro da pasta do tomcat no servidor!
Falow!