DWR não roda fora de localhost

32 respostas
G

Pessoal,

já faz um tempinho que estou utilizando o dwr e nunca tido problemas…
Hj, fiz umas páginas de teste, utilizando alguns recursos do framework, empacotei em um war e coloquei em um server gratuito… fui tentar rodar e, para minha surpresa, todos os locais onde fazia uso do DWR não se comportam da maneira esperada. Depois disso, vi que no console do JavaScript aparece n erros dizendo que as minhas classes Bean (que seriam as utilizadas pelo DWR) não estão sendo localizadas… usando o mesmo projeto, porém rodando local, funciona muito bem…

Alguém saberia o que está faltando para corrigir esse problema??

Abraco

32 Respostas

J

Chame o Servlet dele manualmente e veja se ele está executando normalmente:

http://host/dwr/

G

Não funcionou! Por sinal… dessa maniera, nem local funciona! :roll:

J

Mas não apareceu nada? Nenhuma mensagem falando que o Servlet não está disponivel? E o Servlet está mapeado para essa url (dwr/*) mesmo? Tente colocar o parametro de debug lá pra ver se aparece.

Pois isso deveria te mostrar uma interface de teste dos seus metodos, informando quais classes e metodos são conhecidos pelo DWR e permitindo que você teste eles.

J

Ahh eu esqueci de colocar o nome da aplicação na url! :oops:

http://host/aplicacao/dwr

G

Hehehe…

Foi assim mesmo que tentei, mas sem sucesso… eu não possuo o diretorio /dwr dentro da minha aplicacão… sempre funcionou sem ele! É obrigatório o seu uso?

J

Não é um diretorio, é o mapeamento do Servlet do DWR, como você declarou o Servlet no web.xml?

G

Exatamente assim… segue abaixo o mapeamento:

<blockquote>

<servlet-mapping>

<servlet-name>dwr-invoker</servlet-name>

<url-pattern>/dwr/*</url-pattern>

</servlet-mapping></blockquote>
J

Pois é, deveria aparecer alguma coisa quando você digita:

http://localhost/suaplicacao/dwr/

Tente adicionar um parametro de debug aí pra ver se faz alguma diferença:

&lt;servlet&gt; //configuração do servlet &lt;init-param&gt; &lt;param-name&gt;debug&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;/servlet&gt;

G

Adicionei a propriedade debug, mas o máximo que consegui foi:

HTTP Status 404 -

type Status report

message

description The requested resource () is not available.
Apache Tomcat/5.5.16

J

Então deve estar dando algum erro ao fazer deploy desse Servlet, não?

G

Consegui evoluir um pouquinho:

HTTP Status 403 -

type Status report

message

description Access to the specified resource () has been forbidden.
Apache Tomcat/5.5.9

Mas disso eu não passei

G

Erro não ocorre!

J

Veja a pagina que deveria ser exibida:

http://jairelton.com/java/dwr.JPG

J

Veja o 3º passo desse exemplo:

http://getahead.ltd.uk/dwr/getstarted

G

Seguinte,

mexi e remexi nos meus xmls de configuracão e achei um problema no dwr.xml, corrigi tal problema e a página que deveria ser aberta (http://[host]/[app]/dwr/), abriu… bom, isso usando a aplicacão local, no servidor, continua dando problema… essa página não abre e nem as funcoes da minha aplicacao que fazem uso do DWR! =(

J

Se o Servlet não executa no servidor, provavelmente tem um erro ao fazer deploy da sua aplicação, e provavelmente quando você tenta acessar esse Servlet é exibido um erro, no lugar da pagina de teste que deveria exibir… Dê uma olhada no log do Tomcat pra ver o que há de errado quando ele tenta startar sua aplicação.

G

Em relacao ao DWR achei isso:

SEVERE: Invalid path /login was requested

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: Logging using commons-logging.

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: retrieved system configuration file: java.io.ByteArrayInputStream@430b6

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: Missing classdef for creator ‘spring’. Failed to load uk.ltd.getahead.dwr.create.SpringCreator. Cause: org/springframework/beans/factory/BeanFactory

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: Missing class for creator ‘pageflow’. Failed to load uk.ltd.getahead.dwr.create.PageFlowCreator. Cause: Beehive/Weblogic Creator not available.

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: Missing classdef for converter ‘jdom’. Failed to load uk.ltd.getahead.dwr.convert.JDOMConverter. Cause: org/jdom/Document

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: Missing class for converter ‘hibernate’. Failed to load uk.ltd.getahead.dwr.convert.HibernateBeanConverter. Cause: Failed to find either org.hibernate.Hibernate or net.sf.hibernate.Hibernate.

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: Can’t marshall org.jdom.Document because converter ‘jdom’ is not available. The converter definition may be missing, or required element may be missing from the CLASSPATH

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput info

INFO: Can’t marshall org.jdom.Element because converter ‘jdom’ is not available. The converter definition may be missing, or required element may be missing from the CLASSPATH

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput error

SEVERE: Line=33 The content of element type “dwr” must match “(init?,allow?,signatures?)”.

Jul 14, 2006 6:51:56 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput warn

WARNING: Page not found (/dwr). In debug/test mode try viewing /[WEB-APP]/dwr/

Jul 14, 2006 6:52:01 AM uk.ltd.getahead.dwr.util.CommonsLoggingOutput warn

WARNING: Failed attempt to access index page outside of debug mode. Set the debug init-parameter to true to enable.

J

Parece que seu arquivo dwr.xml é inválido, não?

G

Pensei nisso tambem… mas acho que está tudo ok!

Segue abaixo:

<!DOCTYPE dwr PUBLIC
“-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN”
http://www.getahead.ltd.uk/dwr/dwr10.dtd”>

<dwr>

&lt;allow&gt;
	&lt;create creator="new" javascript="Regs" scope="session"&gt;
		&lt;param name="class" value="org.griffante.rfw.control.dwr.Regs" /&gt;
	&lt;/create&gt;
	&lt;create creator="new" javascript="Login"&gt;
		&lt;param name="class" value="org.griffante.rfw.control.dwr.Login" /&gt;
	&lt;/create&gt;
	&lt;create creator="new" javascript="UserBean"&gt;
		&lt;param name="class" value="org.griffante.rfw.control.dwr.UserBean" /&gt;
	&lt;/create&gt;
&lt;/allow&gt;

</dwr>

J

Estranho!

Não deveria ter algumas tags include ou exclude dentro de create?

G

Acredito que não!

Olhe o exemplo que tem na página do DWR:

<!DOCTYPE dwr PUBLIC
“-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN”
http://www.getahead.ltd.uk/dwr/dwr10.dtd”>

<dwr>

<allow>

<create creator=“new” javascript=“JDate”>

<param name=“class” value=“java.util.Date”/>

</create>

<create creator=“new” javascript=“Demo”>

<param name=“class” value=“your.java.Bean”/>

</create>

</allow>

</dwr></blockquote>
J

Sei, então não sei que erro é esse, deve ter mais algum erro aí no log, pois se funciona local, deveria funcionar aí tambem. No xml eu não sei se tem erro, pois eu mexo com ele com annotations.

G

Entendo! Estou olhando aqui… fiz mais uns testes e esse erro parou de aparecer (retirei a declaracao “scope” do XML)… mas continua sem funcionar!

J

Deve ter alguma coisa de errada com o servlet aí, só pode!

G

Abrindo os meus Beans pelo app/dwr/, todos os metodos funcionam normalmente… mas dentro da aplicacao, nem sonhando! =\

J

Mas pelo menos está funcionando o teste?

Se estiver, provavelmente tem alguma coisa com a inclusão dos scripts nas paginas, ou algo assim…

G

Sim, os testes estao funcionando…
Acabei de verificar a inclusar dos .js nos arquivos jsp e está tudo certo… tentei novamente local e funciona perfeitamente… mas remoto, nada ainda!

G

Estranho é que quando invoco o DWR a partir de um jsp, nao aparece no log que o servlet foi carregado, ao contrário do que ocorre se acessar diretamente /[app]/dwr/

J

E como está a inclusão dos arquivos nas paginas?

G

&ltscript language=“javascript” src=’/rw/dwr/interface/UserBean.js’&gt&lt/script&gt
&ltscript language=“javascript” src=’/rw/dwr/engine.js’&gt&lt/script&gt

Ahahhaa… acho que achei o erro… eu fiz deploy com outro nome! :oops:

J

Vixe!

G

Acabo de testar… funcionando sem problemas…

Desculpa aí, dá próxima vez presto mais atencão!! :razz:

Vlw pela ajuda

Criado 12 de julho de 2006
Ultima resposta 14 de jul. de 2006
Respostas 32
Participantes 2