Agora são 3:42AM, e não fui dormir ainda porque fiquei o dia inteiro atrás da porcaria da integração Yahoo Pipes ao nosso componente REST para o Google Calendar.
O problema começou porque o componente WebServices do Pipes não usa um MediaContent simples como "application/xml" ou "application/json". Ele insiste em usar algo mais exótico, como "application/x-www-form-urlencoded".
E aí a vaca vai pro brejo, pois os providers nativos do RestEasy não interpretam esse tipo de conteúdo, uma vez que ele é codificado.
Então, tive que partir para a criação de um provider customizado...
XStream
Mas pra variar, o Jettison parece não escrever Json com esse tipo de codificação, e então tive que apelar para o XStream, também lá da CodeHaus.
Ao juntar os dois, consegui parsear o Json e produzir meus objetos Java a partir do stream HTTP gerado pelo Yahoo Pipes. E fiquei quase feliz. Eu disse quase.
Trabalho x Casa
No trabalho, os meus Pipes do Yahoo apontam para nosso endereço http://jboss.lm2.com.br/xxx, qual é válido na Internet (ou seja, para os Pipes do Yahoo acessarem).
Mas em casa, a coisa é diferente. E tive que configurar meu Wireless e meu Modem ADSL para expor meu Tomcatezinho para Web.
Porém, o SpeedStream aqui da GVT me deu uma dor de cabeça do (...) e parece que os Forward das portas não funcionavam.
Cansado, apelei para o Putty, e acessando de um IP externo, percebi que meu Tomcatezinho realmente estava publicando as portas para a Web.
E fique um pouco mais quase feliz.
AJP + NO-IP = Felicidade (Quase)
A dúvida então era: Como manter uma URL única nos meus WebServices dos Pipes do Yahoo, tanto quanto eu estivesse desenvolvendo no ambiente de trabalho, ou em casa ou... em qualquer outro lugar?
A resposta veio com a duplinha AJP e No-Ip.
Via putty, configurei nosso servidor Apache para montar um balanceador, formado pela minha máquina enquanto eu estivesse dentro da rede da empresa, e outro nodo formado pelo... meu mesmo note, quando eu tivesse em casa ou em qualquer outro lugar.
Fiz isso usando o DNS do No-Ip, apontando para meu link pessoal. Veja abaixo como ficou:
BalancerMember ajp://192.168.20.233:8010 route=jvm1
BalancerMember ajp://mmrack.no-ip.info:8010 route=jvm1
Testei e funcionou, e fique quase feliz.
E por que quase? Porque agora são 04:00AM, e quando eu chegar atrasado no trabalho vão reclamar de mim, e ainda por cima, terei que validar meu processo de Json x Java para ver se tudo realmente está Ok.
Uma hora dessas eu canso.
O problema começou porque o componente WebServices do Pipes não usa um MediaContent simples como "application/xml" ou "application/json". Ele insiste em usar algo mais exótico, como "application/x-www-form-urlencoded".
E aí a vaca vai pro brejo, pois os providers nativos do RestEasy não interpretam esse tipo de conteúdo, uma vez que ele é codificado.
Então, tive que partir para a criação de um provider customizado...
XStream
Mas pra variar, o Jettison parece não escrever Json com esse tipo de codificação, e então tive que apelar para o XStream, também lá da CodeHaus.
Ao juntar os dois, consegui parsear o Json e produzir meus objetos Java a partir do stream HTTP gerado pelo Yahoo Pipes. E fiquei quase feliz. Eu disse quase.
Trabalho x Casa
No trabalho, os meus Pipes do Yahoo apontam para nosso endereço http://jboss.lm2.com.br/xxx, qual é válido na Internet (ou seja, para os Pipes do Yahoo acessarem).
Mas em casa, a coisa é diferente. E tive que configurar meu Wireless e meu Modem ADSL para expor meu Tomcatezinho para Web.
Porém, o SpeedStream aqui da GVT me deu uma dor de cabeça do (...) e parece que os Forward das portas não funcionavam.
Cansado, apelei para o Putty, e acessando de um IP externo, percebi que meu Tomcatezinho realmente estava publicando as portas para a Web.
E fique um pouco mais quase feliz.
AJP + NO-IP = Felicidade (Quase)
A dúvida então era: Como manter uma URL única nos meus WebServices dos Pipes do Yahoo, tanto quanto eu estivesse desenvolvendo no ambiente de trabalho, ou em casa ou... em qualquer outro lugar?
A resposta veio com a duplinha AJP e No-Ip.
Via putty, configurei nosso servidor Apache para montar um balanceador, formado pela minha máquina enquanto eu estivesse dentro da rede da empresa, e outro nodo formado pelo... meu mesmo note, quando eu tivesse em casa ou em qualquer outro lugar.
Fiz isso usando o DNS do No-Ip, apontando para meu link pessoal. Veja abaixo como ficou:
BalancerMember ajp://192.168.20.233:8010 route=jvm1
BalancerMember ajp://mmrack.no-ip.info:8010 route=jvm1
Testei e funcionou, e fique quase feliz.
E por que quase? Porque agora são 04:00AM, e quando eu chegar atrasado no trabalho vão reclamar de mim, e ainda por cima, terei que validar meu processo de Json x Java para ver se tudo realmente está Ok.
Uma hora dessas eu canso.
0 comentários:
Postar um comentário