P/ Guilherme.....sobre o chat

15 respostas
R

E ai, cara…beleza??

seguinte…peguei o arquivo .zip do chat q vc fez…mas nao consegui roda-lo p/ ver…

como faco p/ executa-lo???
eh q to querendo fazer um chat aqui em java puro, nao em servlets…apenas p/ usa-lo dentro de minha rede…

obrigado

15 Respostas

Guilherme_Silveira

opa rafa, blz?
entao, o projeto do chat eh baseado em servlets. se voce tem interesse em criar um projeto de chat em aplicacao tera que seguir outro esquema.
eh isso que quer?
as limitacoes das servlets eh o problema da conexao intermitente, que eh resolvida no exemplo que passo.

qual o problema que esta tendo ao compilar/testar?

gui

R

entao cara…

eu consegui executar a tela de Login, mas ao tentar entrar, dah erro de NullPointer…

como faco exatamente p/ executar o chat?? precisa ter algum tipo de servidor rodando??
me passe os passos certos p/ conseguir…

obrigado cara

Guilherme_Silveira

entao. os passos de instalacao sao os mais simples possiveis.
basta colocar o jar num local acessivel pela sua web application e acessa-lo pelo browser
o nullpointer eh um tanto quanto estranho
recomendo:

  1. faca o download do zip novamente e instale o jar novamente no seu webserver
  2. qual eh seu webserver?
  3. aonde esta colocando o .jar?
  4. como esta acessando o login?
  5. qual o stack trace do null pointer?

se vc puder me passar esses dados eu posso reproduzir o erro aqu ie ver o q esta acontecendo

abraco

gui

R

entao cara…

eu uso o tomcat aqui como servidor…
entao, onde devo colocar o .jar??

eu estava acessando a class Login diretamente do browser…nao sabia q podia acessa-lo diretamente do .jar…

valeu cara…

Guilherme_Silveira

opa rafael, tudo bem?
entao, passo a passo
voce tem o .jar, pegue ele e coloque no diretorio lib que voce tem da sua aplicacao. por exemplo:
examples/WEB-INF/lib
(talvez o diretorio lib nao exista, basta criar)
ai voce acessa a servlet de login e tenta efetuar o login
se ocorrer uma exception, envie ela por favor, sem ela nao da para saber o q ocorre de errado

guilherme

R

ainda nao foi dessa vez, cara…

tentei executar, mas aidna ocorre NullPointer …
diz q ocorre na linha 93 da classe login, no metodo doPost…

Guilherme_Silveira

entao, tem como me passar a Stack inteira? isto significa, quem chamou o q?

R

entao cara…

executei a classe Login e qdo digito o login e clico em Entrar, aparece essa tela…

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

java.lang.NullPointerException

at Login.doPost(Login.java:93)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)

at java.lang.Thread.run(Unknown Source)

se vc souber o q isso significa…

Guilherme_Silveira

entaum
olhando o codigo fonte da versao, indica a linha que voce mencionou:

res.getWriter().print( "<html> " + " <frameset rows=*,100> " + " <frame name="text" src="" + this.getClass().getPackage().getName() + ".Room"> " + " <frame name="form" src="" + this.getClass().getPackage().getName() + ".Form"> " + " </frameset> " + "</html>");

Sendo a linha mencionada justo a que chama o getWriter().println().
Isso significa que o objeto res ou o metodo getWriter() estao retornando NULL. Isso seria um TANTO quanto estranho.
Um teste bom para ser feito eh alterar a linha unica acima para as linhas seguinte:

if(res==null) { System.out.println("res==null"); log("res==null"); } if(res.getWriter()==null) { System.out.println("res.getWriter()==null"); log("res.getWriter()==null"); } if(this.getClass()==null) { System.out.println("this.getClass()==null"); log("this.getClass()==null"); } if(this.getClass().getPackage()==null) { System.out.println("this.getClass().getPackage()==null"); log("this.getClass().getPackage()==null"); } if(this.getClass().getPackage().getName()==null) { System.out.println("this.getClass().getPackage().getName()==null"); log("this.getClass().getPackage().getName()==null"); } res.getWriter().print( "<html> " + " <frameset rows=*,100> " + " <frame name="text" src="" + this.getClass().getPackage().getName() + ".Room"> " + " <frame name="form" src="" + this.getClass().getPackage().getName() + ".Form"> " + " </frameset> " + "</html>");

A alteracao nao ira resolver o problema, mas ao ser rodado, o programa ira nos mostrar tanto no arquivo de log do seu tomcat quanto no output dele, qual objeto tem valor null (que nao deve ser os dois primeiros mas sim um dos outros seguintes)…

Se voce tiver problemas compilando o codigo da uma avisada.
Fico aguardando o resultado do teste (as saidas).
Mais uma perguntinha, qual o JDK que voce esta usando?

Guilherme

R

entao Guilherme…

fiz aquela alteracao q vc disse e apareceu o seguinte erro no prompt…

this.getClass().getPackage()==null

como resolve-lo??

ate mais.

Guilherme_Silveira

“rbarioni”:
entao Guilherme…

fiz aquela alteracao q vc disse e apareceu o seguinte erro no prompt…

this.getClass().getPackage()==null

como resolve-lo??

ate mais.

MUITO interessante…
significa que o package da classe eh nulo, um tanto quanto estranho.
o negocio eh trocar o codigo:

" + this.getClass().getPackage().getName() + "

por:

br.guj.chat.servlet

isso resolve o problema com certeza.
voce tem como me falar a versao do jdk ou jre que voce esta usando? pq o metodo getPackage() eh do java e eh estranho retornar null
de qq jeito vou alterar o fonte do .zip e reenviar ainda hoje pro guj

guilherme[/code]

R

valeu Guilherme…

isso resolveu mesmo o problema…agora consegui rodar o chat…

obrigado

E

Podem mandar os fontes desse chat pra mim…

Paulo_Silveira

estao junto ao tutorial de como fazer um chat!

devil_hunter

mans eu quero criar um chat

quem solber fasser pega ai meu msn : [email removido]

Criado 23 de outubro de 2002
Ultima resposta 28 de dez. de 2008
Respostas 15
Participantes 5