Acessos aleatórios no Glassfish

44 views
Skip to first unread message

Victor Fugiwara

unread,
Jul 1, 2013, 4:53:01 PM7/1/13
to jav...@googlegroups.com
Fala pessoal,

Estou tendo um problema com um cliente que não consigo pensar nem sobre o que pesquisar pra tentar resolver.

Tenho uma aplicação JSF1.2 rodando em um Glassfish 2.1.
O glassfish está instalado em uma máquina dentro da rede do cliente e no firewall tem um redirecionamento que cai na porta 8080 dele (para acesso externo).

Tudo funciona certo, o problema é que tem algumas mensagens de erro no log que ocorrem com uma certa frequência (+/- a cada 30 minutos). O erro é:
[#|2013-06-28T17:10:54.137-0300|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=19;_ThreadName=httpSSLWorkerThread-8080-3;_RequestID=e3bee671-7f2c-4564-abab-398c63f34a52;|StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
java.lang.RuntimeException: Cannot find FacesContext
    at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1855)
    at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1672)
    at org.apache.jsp.pages.cadastro.vendedor.listavendedor_jsp._jspx_meth_h_form_0(listavendedor_jsp.java from :156)
    at org.apache.jsp.pages.cadastro.vendedor.listavendedor_jsp._jspService(listavendedor_jsp.java from :129)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
    at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:382)
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264)
    at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]


Ou seja, está fazendo o acesso como caminho/pagina.jsp ao invés de pagina.faces (extensão que eu configurei)

Porém esses acessos são em páginas totalmente aleatórias do sistema e em todos os horários (inclusive madrugada que não tem ninguém usando). Nele tenho 9 módulos e mais de 700 arquivos jsp e são acessadas páginas de diferentes módulos, sem ter uma sequência ou algo do tipo.

Não sei se pode ter algum tipo de ferramenta que esteja fazendo uma varredura nos arquivos da aplicação e isso está gerando requisições e, consequentemente, esses erros. Meu cliente também não soube me dizer se eles tem alguma ferramenta interna que faça essa varredura (o problema só ocorre neste cliente).


Alguém tem ideia de como eu poderia verificar se é isso mesmo que está ocorrendo? Alguém já passou por isso?

Everton Fujimoto

unread,
Jul 1, 2013, 4:59:33 PM7/1/13
to javasf: JavaServer Faces International Group
se não me engano, você pode configurar no glassfish para ele escrever um log de acessos... qualquer coisa você pode usar um apache httpd na porta 80 que se conecta ao glassfish por modjk, e no apache httpd colocar awstats. Provavelmente vai aumentar uns 10ms em cada requisição. 

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481


--
Livros sobre java: http://bit.ly/19OY7gU
---
Você está recebendo esta mensagem porque se inscreveu no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para javasf+un...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/javasf.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Renato Fagalde

unread,
Jul 1, 2013, 7:59:01 PM7/1/13
to jav...@googlegroups.com

Olá Victor.

Uso ProxyPass para este tipo de redirecionamento de chamadas externas para a porta 80 o que ao meu ver é independente deste erro.

No meu caso estava usando um iframe e na url estava especificando apenas a pasta: http://www.mamae.com.br/nome/pastaDesejada/ Mesmo com o web.xml configurado para interpretar o arquivo de welcomelist  site.jsf o erro permanecia. Na url da chamada informei o caminho completo com o nome do arquivo(.../pastaDesejada/site.jsf) e funcionou! Como você tem mais de 700 paginas e uma configuração diferencia para a extensão, talvez algum outro programador possa ter deixado uma chamada com a extensão padrão! Apenas uma idéia.

[]s!

Victor Fugiwara

unread,
Jul 3, 2013, 9:56:32 AM7/3/13
to jav...@googlegroups.com
Obrigado pelas respostas.

Fiz o que o Everton falou, habilitei o log de acessos do Glassfish e descobri os ips que estão acessando:

"180.76.5.153"  "NULL-AUTH-USER" "02/Jul/2013:12:12:40 -0300" "GET /Loggi/pages/medicinapreventiva/cadastros/dispositivo/ HTTP/1.1" 200 1899
"180.76.6.15"   "NULL-AUTH-USER" "02/Jul/2013:12:42:40 -0300" "GET /Loggi/pages/medicinapreventiva/cadastros/feriado/ HTTP/1.1" 200 1864
"180.76.5.142"  "NULL-AUTH-USER" "02/Jul/2013:13:37:12 -0300" "GET /Loggi/pages/medicinapreventiva/estoque/comparativocustosmatmed/ HTTP/1.1" 200 1652
"180.76.5.100"  "NULL-AUTH-USER" "02/Jul/2013:16:25:29 -0300" "GET /Loggi/pages/administrativo/perfilacesso/ HTTP/1.1" 200 1812
"180.76.5.66"   "NULL-AUTH-USER" "02/Jul/2013:17:51:20 -0300" "GET /Loggi/pages/cadastro/abrangenciageografica/ HTTP/1.1" 200 1847

De acordo com o http://www.iplocation.net esses ips são da Beijing Baidu Netcom Science And Technology Co. Ltd. na China.
Esse Baidu é o google da china, então acredito que ele esteja indexando as páginas da aplicação.

Tem alguma forma de impedir isso sem ser via regras de firewall?


2013/7/1 Renato Fagalde <fagald...@gmail.com>

Everton Fujimoto

unread,
Jul 3, 2013, 10:35:12 AM7/3/13
to javasf: JavaServer Faces International Group

duas sugestões: usar um filter ou phase listener na sua aplicação que verifique o user-agent ou o ip, ou se o baidu for igual ao google, pode simplesmente usar um robots.txt. 



Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481


Felipe Montenegro Aragão

unread,
Jul 3, 2013, 3:41:42 PM7/3/13
to jav...@googlegroups.com
Prezados,
Preciso consumir um webservice utilizando um certificado digital A1.
Procurei um exemplo, mas com nenhum consegui resolver o problema.
Alguém poderia me dar uma dica de como resolver.
Desde já agradeço a ajuda,
Felipe Aragão

Altieres de Matos

unread,
Jul 3, 2013, 5:06:45 PM7/3/13
to jav...@googlegroups.com
Felipe,
 
você pode dar uma olhada em alguns exemplos aqui: https://github.com/altitdb/webservices
 
São bem simples mais podem te ajudar.
 
Att. Altieres de Matos
--
Você está recebendo esta mensagem porque se inscreveu no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para javasf+un...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/javasf.

Felipe Montenegro Aragão

unread,
Jul 3, 2013, 5:48:08 PM7/3/13
to jav...@googlegroups.com

Obrigado.


Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

 

--
Felipe Montenegro Aragão
(98)8121.9090 - (81)9886.4500

Victor Fugiwara

unread,
Jul 16, 2013, 10:45:12 AM7/16/13
to jav...@googlegroups.com
Everton, adicionei o robots.txt na raíz do glassfish, podendo acessá-lo através de http://endereco:8080/robots.txt
User-agent: *
Disallow: /

Tive acesso do ip do google, ele leu o robots.txt e não fez mais nenhuma requisição:
"66.249.75.107" "NULL-AUTH-USER" "13/Jul/2013:20:04:28 -0300" "GET /robots.txt HTTP/1.1" 200 26

Já o baidu não fez nenhuma requisição ao robots.txt e continuo tendo várias requisições dos ips dele.

Vou falar com o resposável pelo firewall pra adicionar alguma regra, pois eu não queria ter que fazer um filtro ou algo do tipo pra não responder determinada faixa de ip, acredito que o mais correto seria utilizar outros meios para evitar que essas requisições sejam feitas.

Obrigado.



2013/7/3 Everton Fujimoto <evert...@gmail.com>
Reply all
Reply to author
Forward
0 new messages