Arquivo TXT [RESOLVIDO]

16 respostas
ricardocomp

Olá pessoal, estou com uma dúvida aqui
que não estou conseguindo resolver
eu tenho o seguinte construtor:

private File file = new File("config.txt");
public SpagoBISDK() throws FileNotFoundException, IOException {             
        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        String str = br.readLine();
        proxy.setEndpoint(str);
        fr.close();
        br.close();
    }

Eu já coloquei o arquivo config.txt na raiz do meu projeto,
mas toda hora aparece a seguinte mensagem:

Exception :: NullPointerException Null property value specified.
javax.xml.rpc.JAXRPCException: Null property value specified.
        at org.apache.axis.client.Stub._setProperty(Stub.java:96)
        at it.eng.spagobi.sdk.proxy.DocumentsServiceProxy.setEndpoint(DocumentsServiceProxy.java:73)
        at SpagoBISDK.<init>(SpagoBISDK.java:48)
        at Project.<init>(Project.java:33)
        at ServletEvaluation.doPost(ServletEvaluation.java:130)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

Será que alguém poderia me dar uma ajuda?

[]'s.

16 Respostas

E
String str = br.readLine();  
        proxy.setEndpoint(str);

Imprima o valor de str, ou então debugue seu programa, para ver se é str que é null, ou se é proxy que é null.

ricardocomp

Falaaa entanglement
então estou debugando aqui
e o valor de str é null

boolean bool = file.createNewFile();
System.out.println("bool = " + bool);

String str = br.readLine();
System.out.println("str = " + str);
bool = false
str = null

entanglement será que tem como você ou alguém me dar uma ajuda?

[]'s.

E

br.readLine retorna null quando o arquivo lido é vazio, ou então quando já se chegou ao final do arquivo. Confira o arquivo lido.

ricardocomp

entanglement o meu arquivo txt
possui apenas uma URL

config.txt

http://valinhos.ime.usp.br:50988/SpagoBI/sdk/DocumentsService

Não sei porque ele não está lendo a primeira linha do arquivo.

E

Estranho. Que tal fazer algo como:

http://valinhos.ime.usp.br:50988/SpagoBI/sdk/DocumentsService

e deixar mais umas linhas em branco no final de seu arquivo? Se isso não estiver ocorrendo, talvez você esteja tentando abrir o arquivo errado. Uma forma de checar isso é usar o caminho absoluto (em vez de new File (“config.txt”) usar algo como new File ("/home/ricardo/exemplos/trabalho/config.txt") ou new File (“c:\users\ricardo\trabalho\config.txt”). Se funcionar, então é problema com a referência do arquivo.

ricardocomp

entanglement será que vc ou alguém pode me dar uma ajuda?

[]'s.

ricardocomp

entanglement eu passei o caminho absoluto e agora funcionou, fiquei confuso agora
por que será que o caminho relativo não está funcionando?

ricardocomp

entanglement vc falou que se funcionasse então seria um problema com a referencia
do arquivo vc quis dizer com a referncia file do arquivo que eu criei?

E

Quando você escreve "new File (“config.txt”)) o Java está tentando achar no diretório corrente de sua aplicação (pode ser que não seja o mesmo diretório do seu JAR).
Há duas formas de se corrigir isso:

a) Você pode usar um arquivo de configuração dentro do seu próprio JAR, e em vez de acessá-lo com um FileReader ou FileInputStream, pode usar um getClass().getResourceAsStream();
b) Você usa um caminho absoluto, mas aí você tem de passar isso, por exemplo, como um argumento de linha de comando.

ricardocomp

Falaaa entanglement
eu fiz um outro teste aqui e deu certo
mas quando utilizo ele dentro do meu servlet dá esse pau,
mas eu preciso colocar o meu arquivo txt no mesmo diretorio do .war?

Será que tem como vc entanglement ou alguém me dar uma ajuda?

[]'s.

E

Puxa vida - quando é uma aplicação Web, normalmente usa-se o esquema de usar “getClass().getClassLoader().getResourceAsStream()”. Procure por isso aqui no GUJ que deve achar (se a busca do GUJ não for muito boa, tente usar o parâmetro site:www.guj.com.br ao chamar o Google). No caso de uma aplicação Web evite usar arquivos explicitamente (com FileInputStream/FileOutputStream), até porque você pode ter problemas de permissão de leitura ou escrita.

ricardocomp

entanglement então o correto seria eu usar os arquivos properties
em uma aplicação Web?

E

Normalmente é mais adequado. Pode-se também usar JNDI e configurar o tal valor no console do seu servidor de aplicações, mas isso costuma ser “muito canhão para pouco mosquito” às vezes.

No seu caso:

service=http://valinhos.ime.usp.br:50988/SpagoBI/sdk/DocumentsService
ricardocomp

entanglement uma última pergunta
o que é mais correto de se fazer,
posso deixar o meu arquivo properties
junto com os meu códigos fontes msm,
dentro da pasta src?

[]'s.

E

Se você fizer isso, o próprio Eclipse ou NetBeans irá pôr esse arquivo .properties no JAR ou WAR. Digamos que ele esteja em src/resources/config.properties; então na hora de você pegar esse arquivo com getResourceAsStream, deve ser algo como “/resources/config.properties”

ricardocomp

Valeu entanglement , muito obrigado pela ajuda.
Com a sua ajuda consegui resolver o meu problema.

Um Forte Abração aê. :smiley:

Criado 6 de dezembro de 2010
Ultima resposta 6 de dez. de 2010
Respostas 16
Participantes 2