URL Amigavel no Tomcat

Boa Tarde Galera,
Estou algum tempo procurando um tutorial ou algo que fale a respeito pra o tomcat + está dificil…
Estive tentando criar URL Amigavel do tipo:
o Usuario quer acessar a pagina dele dentro do meu site ex:

www.meusite.com.br/nomedousuario

só que no meu caso isso da erro no tomcat pq deveria ser assim
www.meusite.com.br/Controlador?usuario=“nomedosusuario”

então eu gostaria mudar isso, de forma que automaticamente ao enviar um parametro depois do /
eu possa pegar aquela string e tratar dentro do controlador…
Nota: meu app, já é chamado automaticamente quando abro o site. ( que é o Controlador)

Obrigado Desde já!
:smiley:
A União faz a Força!

Isso é uma caracteristica do framework que você usa, o struts2 e o jsf já tem isso pronto

Obrigado amigo por esse tutorial ai em JSF(Acho que da pra aproveitar alguma coisa do tutorial dele lá… ), vou testar ele logo mas e dou a resposta.
Eu achei que a “culpa” era do tomcat pq é ele quem está bloqueando o resto da URL (nomedousuario), ele acha que deve ser uma pasta de uma app.

type Status report

message /nomedousuario

description The requested resource (/nomedousuario) is not available.

Você pode usar um url rewriter semelhante ao que é usado no apache pelo wordpress.

tuckey.org/urlrewrite

[quote=garcia-jj]Você pode usar um url rewriter semelhante ao que é usado no apache pelo wordpress.

tuckey.org/urlrewrite[/quote]

O site não abre… vou tentar + tarde :S

Bom dia prezados, como vão?

Estou com problemas na utilização do Urlrewriter link:

http://tuckey.org/urlrewrite/

Não consigo abrir o link e quando chamo o DTD no arquivo urlrewrite.xml


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
        "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">

<!--

    Configuration file for UrlRewriteFilter
    http://tuckey.org/urlrewrite/

-->
<urlrewrite>

    <rule>
        <from>^/$</from>
        <to>/index.jsp</to>
    </rule>

</urlrewrite>

Dá timeout no meu projeto com o seguinte erro:


06/05/2010 10:36:07 org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.utils.Log ERROR: logLevelConf: null
06/05/2010 10:36:29 org.apache.catalina.core.ApplicationContext log
SEVERE: org.tuckey.web.filters.urlrewrite.Conf ERROR: Exception loading conf  Connection timed out: connect
java.net.ConnectException: Connection timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(Unknown Source)
	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at sun.net.NetworkClient.doConnect(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.<init>(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.URL.openStream(Unknown Source)
	at org.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:796)
	at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:756)
	at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:267)
	at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(XMLDocumentScannerImpl.java:826)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:333)
	at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:524)
	at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:580)
	at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
	at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:253)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201)
	at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
	at org.tuckey.web.filters.urlrewrite.Conf.loadDom(Conf.java:137)
	at org.tuckey.web.filters.urlrewrite.Conf.<init>(Conf.java:90)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.loadConf(UrlRewriteFilter.java:243)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.init(UrlRewriteFilter.java:229)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
06/05/2010 10:36:29 org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
06/05/2010 10:36:29 org.apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
06/05/2010 10:36:29 org.apache.coyote.ajp.AjpAprProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009
06/05/2010 10:36:29 org.apache.catalina.startup.Catalina start
INFO: Server startup in 27302 ms

Estou utilizando o Tomcat 6… já estava funcionando até ontem, mas não sei o que pode estar acontecendo.

Obrigado pela atenção e agradeço desde já se alguém já passou por isso antes.

Tente baixar o jar mais atualizado do url-rewriter. Ou então remova a DTD do seu urlrewrite.xml

Olá Garcia, tudo bem?

Antes de tudo, obrigado pela sua atenção…

Ontem a tarde estabilizou o carregamento do site http://tuckey.org/urlrewrite/

Sim, já tentei remover o DTD e atualizar a versão mais nova. No entanto, não consigo rodar a aplicação, pois não reconhece nenhuma página que eu chame utilizando os recursos da URLrewriter.

Uma dúvida, existe a possibilidade de baixar o DTD e fazer a referência dele localmente dentro do arquivo urlrewrite.xml? Já que no site

Exemplo ao invés de:


 <!DOCTYPE urlrewrite
        PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
        "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">

Usar uma expressão semelhante a:



 <!DOCTYPE urlrewrite
        PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
        "http://localhost/urlrewrite2.6.dtd">

Obrigado mais uma vez,

Rubens.

Rubens, eu nunca usei esse projeto, apenas o conheço. Creio você pode simplesmente remover essa DTD. Normalmente os .jar já deveriam ter esse DTD, sei lá por qual razão esse não vem, mas creio que você pode remover sem problemas.

Faça um teste e dê um feedback aqui.

Olá Garcia, vamos lá novamente…

Eu também pensei na possibilidade de retirar o DTD para acesso remoto, evitando esse problema de timeout no carregamento das referências do arquivo urlrewrite.xml…
Consigo subir a aplicação, mas não reconhece os paths que foram definidos pelas rules contidas no arquivo urlrewrite, entendeu?

Por isso, pra evitar o acesso remoto ao DTD no site que mencionei, sugeri o acesso local da implementação do DTD, sem precisar localizá-lo e criar dores de cabeça futuras num bloqueio de acesso ao site… é apenas uma sugestão, não sei se é viável e considerado boa prática.

Obrigado novamente.