Caelum Stella - utilidades para o desenvolvedor brasileiro open source!

85 respostas
P

O Caelum Stella é um projeto open source que reúne algumas necessidades muito recorrentes em diversas consultorias pelas quais a empresa passou.

O projeto vem para auxiliar os desenvolvedores brasileiros, suprindo algumas das necessidades comumente encontradas em aplicações desenvolvidas aqui no Brasil. Atualmente o Caelum Stella fornece uma biblioteca de validadores, formatadores e conversores para documentos brasileiros, tais como CPF, CNPJ e PIS/PASEP. Você pode facilmente validar um CPF:
new CPFValidator().assertValid("[CPF removido]");
Ou utilizar o Stella como plugin do Hibernate Validator:
@Entity
  public class Modelo {
    @CPF
    private String cpf;
  
    public String getCpf() {
      return cpf;
    }
  }

Até mesmo como validador JSF:

<h:inputText id="cpf" value="#{usuarioBean.cpf}">
  <stella:validateCPF/>
</h:inputText>
Para gerar um boleto em PNG:
Boleto boleto = Boleto.newBoleto().withBanco(banco).withDatas(datas)
            .withDescricoes("descricao 1", "descricao 2", "descricao 3")
            .withEmissor(emissor).withSacado(sacado)
            .withValorBoleto("200.00").withNoDocumento("1234")
            .withInstrucoes("instrucao 1", "instrucao 2", "instrucao 3")
            .withLocaisDePagamento("local 1", "local 2");

  new BoletoGenerator(boleto).toPDF("teste.pdf");
Mais informações sobre o projeto no blog da Caelum: http://blog.caelum.com.br/2008/05/21/caelum-stella-o-cinto-de-utilidades-para-o-desenvolvedor-brasileiro/

E diretamente no website do projeto:
http://stella.caelum.com.br/

E o roadmap dos futuros recursos:
http://stella.caelum.com.br/roadmap.html

Parabéns a toda equipe inicial, pelos mais de 400 commits e mais de 235 testes unitários e alta cobertura de tests: Fábio Kung, Caires Santos, Caue Guerra, Leonardo Bessa, Lucas Cavalcanti, Jonas Abreu, Guilherme Moreira. Aguardamos novos colaboradores e recursos!

85 Respostas

Z

Ótima noticia!

O brasilUtils é cheio de complicações durante a validação! Tenho problemas direto!
È sempre bom poder ter soluções alternativas!

:stuck_out_tongue:

L

Desde a palestra no FJ2008 que to fazendo propaganda do Stella pra todo desenvolvedor que converso.
:wink:

A

Existe algum tutorial para quem está querendo iniciar?

C

Paulo Silveira:

Mais informações sobre o projeto no blog da Caelum:

E diretamente no website do projeto:
http://stella.caelum.com.br/

E o roadmap dos futuros recursos:
http://stella.caelum.com.br/roadmap.html

Parabéns a toda equipe inicial, pelos mais de 400 commits e mais de 235 testes unitários e alta cobertura de tests: Fábio Kung, Caires Santos, Caue Guerra, Leonardo Bessa, Lucas Cavalcanti, Jonas Abreu, Guilherme Moreira. Aguardamos novos colaboradores e recursos!

Ai esta o site, tem muitos exemplos, para diversas tecnologias (faces,hibernate, etc…)

De uma olhada nos exemplos com calma. Eles estão bem completos, qualquer duvida só postar.

C

parabéns para os desenvolvedores !!!
caiu como uma luva nos meus estudos p/ futuros projetos.
a propósito, bonito nome do projeto Stella…
por acaso é o nome da namorada de um dos caras, heheh

P

cristianonasciment:

a propósito, bonito nome do projeto Stella…
por acaso é o nome da namorada de um dos caras, heheh

Perspicaz de sua parte. É o nome da irma de um dos caras, e assim como Caelum é ceu em latim, Stella é estrela!

L

Paulo, vai ter um bugtrack para quem quiser colaborar com o projeto, acompanhar as tarefas e tal?

F

estamos correndo atrás! :wink:

edit: por enquanto tem as listas de discussão

B

Paulo Silveira:
cristianonasciment:

a propósito, bonito nome do projeto Stella…
por acaso é o nome da namorada de um dos caras, heheh

Perspicaz de sua parte. É o nome da irma de um dos caras, e assim como Caelum é ceu em latim, Stella é estrela!

E é o nome do melhor emulador de Atari existente :slight_smile:

http://stella.sourceforge.net/

R

Parabéns a todos do projeto!!!

A proposta dele com certeza atingirá uma gama considerável de outros projetos e isso muito contribuirá para a comunidade!!! Estarei sempre acompanhado.

P

proximo passo é seguir uma ideia que o misterm falou e que o Fabio Kung quis fazer desde o comeco: criar entidades para CPF, CNPJ, IE, etc. Nao fizemos isso no comeco porque nao queriamos atrapalhar o model da pessoa. vamos deixar as duas opcoes, e criar user types para o hibernate e converters para JSF.

J

que projeto bacana, vou começar a utilizá-lo e postar feedbacks na lista…

B

Legal, validador de IE p/ MT! Vou ver se ele bate na nossa :wink:

Peguei uma **** raiva do BrazilUtils qdo fui ver o código deles p/ essas coisas básicas. Agora estamos nas mãos de quem entende!

L

Tentei utilizar mas porem tomei este erro logo de cara:

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:535)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
	org.ajax4jsf.Filter.doFilter(Filter.java:175)
	com.Lgweb.Tcc.Util.SecuritFilter.doFilter(SecuritFilter.java:51)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

javax.servlet.ServletException: javax.servlet.jsp.JspException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:851)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
	org.apache.jsp.view.MenuSistema_jsp._jspService(MenuSistema_jsp.java:160)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
	org.ajax4jsf.Filter.doFilter(Filter.java:175)
	com.Lgweb.Tcc.Util.SecuritFilter.doFilter(SecuritFilter.java:51)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

org.apache.jasper.JasperException: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)

Coloquei os dois .jar no classpath,Falta algo?

P

lgweb, jsf 1.2?

L

SIM 1.2.

P

vou fazer os testes. usamos jetty e tomcat, nao passei pelo jbossweb, mas deveria ser a mesma coisa. ruim q ele nao da o root cause e nao da pra saber o q foi exatamente. ele nem fala q xml q eh

F

Dei uma olhada nos nossos xmls aqui e aparentemente nenhum problema. Consegue aumentar o nivel de log para vermos onde o parser de xml tá reclamando?

A única coisa que eu vi aqui era um xml nosso que o <?xml … ?> não estava na primeira linha. Mas como antes era comentário, só se o xmlparser do jbossweb for chato ao extremo!

De qualquer forma, já arrumei isso no trunk do svn.

B

Paulo, vcs tem um issue tracker? Já achei dois erros.

I

É bom lembrar que um dos Owners do BU é funcionário do SERPRO, e quando há uma mudança de validação/ordem das coisas, sabemos primeiro e modificamos.Mas o maior problema do BU foi a falta de testes e colaboradores ativos.Só recebemos 2 correções de usuários até hoje(pelo que me lembre).Eu sempre pedi, me envie um problema ou dica de feature, e apenas um ou outro se interessava.Ainda estamos terminando a Normalização de Endereços.Quanto ao Stella, com o background do Paulo, e o suporte Caelum, não tenho duvidas que o mesmo irá beeem mais longe do que nós. Parabéns pelo projeto Paulo! :smiley:

B

É bom lembrar que um dos Owners do BU é funcionário do SERPRO, e quando há uma mudança de validação/ordem das coisas, sabemos primeiro e modificamos.Mas o maior problema do BU foi a falta de testes e colaboradores ativos.Só recebemos 2 correções de usuários até hoje(pelo que me lembre).Eu sempre pedi, me envie um problema ou dica de feature, e apenas um ou outro se interessava.Ainda estamos terminando a Normalização de Endereços.Quanto ao Stella, com o background do Paulo, e o suporte Caelum, não tenho duvidas que o mesmo irá beeem mais longe do que nós. Parabéns pelo projeto Paulo! :D

Só fiquei chateado aundo fui fazer uma validação de ie, carreguei a classe, quando fui usar o validar “Operation not supported”, ao algo do tipo. Não tinha nada implementado, só abstract. Depois fiquei pensando “para que a classe existe são ela não faz nada”. Melhor não dar esperanças ao usuário. :slight_smile:

L

eu ví lá na palestra do Falando em Java e parece ser bastante interessante =D

quando eu começar um projeto novo que precise de CPF ou com Hibernate e tal, vou utilizar :stuck_out_tongue:

I

Acho que isso ocorreu qaundo foi gerado o jar para a 0.1.1 version.Alguem esqueceu que o projeto só visava o JDK1.4, e colocou algumas features 1.5, e não deu para modificar tudo há tempo na época.Seremos BEM mais cuidadosos na versão 0.2.Mas deixemos isso para outro tópico.Tô testando Stella aqui, e parece bacana! :slight_smile:

P

Oi Bruno!

Por enquanto ficamos com o forum e com a lista de discussao:
http://stella.caelum.com.br/dev/mail-lists.html

Assim que tomar mais corpo abrimos o JIRA so pra ele. Voce posta pra gente aqui ou na lista por enquanto?

D

Opa um erro!

Paulo Silveira:
... Para gerar um boleto em PNG:
Boleto boleto = Boleto.newBoleto().withBanco(banco).withDatas(datas)
            .withDescricoes("descricao 1", "descricao 2", "descricao 3")
            .withEmissor(emissor).withSacado(sacado)
            .withValorBoleto("200.00").withNoDocumento("1234")
            .withInstrucoes("instrucao 1", "instrucao 2", "instrucao 3")
            .withLocaisDePagamento("local 1", "local 2");

  new BoletoGenerator(boleto).toPDF("teste.pdf");

Acho que ele queria dizer PDF... rsrs

Bom falando sério, bacana esse gerador de boletos hein!

Outra coisa, acho que seria muito interessante o pessoal que ainda está ativo no BU e o pessoal do Stella juntarem as forças, isso só iria os dois projetos... como são open source, um pode copiar do outro as boas idéias e adaptar, ou até juntar em um projeto só, o que na minha opinião seria ainda melhor :)

C

Do caralho. Tiny types (http://www.darrenhobbs.com/archives/2007/04/strong_typing_a.html ) eh um dos esquemas mais legais pra modelagem de dominio que eu ja usei.

B

Depois dou uma olhada na lista. Os dois erros:

:arrow: O nome das classes de validação de IE estão errados, ex:

Inscricao Estatudal De Amazonas Validator.java

:arrow: Vocês estão validado a IE de MT com 8 digitos + 1 verificador, o certo é 10+1. A maioria dos produtores rurais mais recentes já tem 9+1. Mais informações.

Dica: Se for facilitar, todos as IEs de MT começam com 13 (não contando os zeros à esquerda).
Se quiser um arquivo com testes, posso mandar.

L

Do caralho. Tiny types (http://www.darrenhobbs.com/archives/2007/04/strong_typing_a.html ) eh um dos esquemas mais legais pra modelagem de dominio que eu ja usei.
Bah… eu usava isso sem nem saber que tinha um nome bonito rs

R

Paulo, parabens pela iniciativa.
Queria dar duas sugestões: num projeto quetrabalhei, precisamos de webservices para cotação de moedas (conversao dolar, euro para real e vice-versa) e outro de trazer um clima de uma cidade brasileira em tempo real e nao conseguimos achar, ai implemnetamos um codigo proprio que funcionou.
Acho que criar webservices para cotação de moedas e clima das cidades seria bem bacana, pois nao existe em java.

B

Para isso basta contratar os serviços da Caelum :lol:

F

Bruno Laturner:
Dica: Se for facilitar, todos as IEs de MT começam com 13 (não contando os zeros à esquerda).
Se quiser um arquivo com testes, posso mandar.

Obrigado pelas dicas Bruno. Com certeza queremos!

Ótimas sugestões Rogério! Anotadas.

P

Bruno, curioso que essas regras foram tiradas de documentos oficiais tambem! Manda o testcase que falha pra gente?

L

Bruno Laturner:

:arrow: Vocês estão validado a IE de MT com 8 digitos + 1 verificador, o certo é 10+1. A maioria dos produtores rurais mais recentes já tem 9+1. Mais informações.

Dica: Se for facilitar, todos as IEs de MT começam com 13 (não contando os zeros à esquerda).
Se quiser um arquivo com testes, posso mandar.

Oi Bruno,
obrigado pela colaboracao.

Ja estamos corrigindo os erros que voce encontrou.

Complementando sua mensagem, existem outros sites que fornecem regras de validacao de inscricao estadual:

Validacao de IE’s do Sintegra
Validacao de IE para MT do Sintegra
formula fornecida pela Sec. da Fazenda do Governo de Sao Paulo (este aqui eh mto bom)

Eu entendi e concordo que as IEs de MT sao de 10 digitos + 1 Digito Verificador.
Nao entendi o que vc disse sobre as IE de produtor rural. Voce pode explicar melhor? ou Enviar algum exemplo de IE de MT para produtor rural?

Eu ficaria muito agradecido em receber um arquivo de testes.

Abraco.

B

Mandei um email pro Paulo.

L

Do caralho. Tiny types (http://www.darrenhobbs.com/archives/2007/04/strong_typing_a.html ) eh um dos esquemas mais legais pra modelagem de dominio que eu ja usei.
Bah… eu usava isso sem nem saber que tinha um nome bonito rs

Sério que você usava isso faz tempo? Se voce tinha um campo ValorItem você usava:

private ValorItem valorItem

???

Eu até entendi a idéia lendo o link que o cv passou, mas sei lá. Ainda não vi reais benefícios que me fizessem a criar esse monte de classes Wrapper.

B

parabéns pela iniciativa!
se a maioria das empresas fossem como a Caelum…

abraços,

C

O beneficio eh que quando vc nao tem mais metodos ou construtores com assinaturas do tipo

Mas sim:

Alem de isso dar uma puta ajuda pra IDE completar o que vc quer, vc nao tem como errar um parametro. Alem do que, refatorar fica BEM mais facil.

F

são todas as vantangens da tipagem explícita mesmo

edit: que vem junto com as desvantagens (burocracia), claro.

L

O beneficio eh que quando vc nao tem mais metodos ou construtores com assinaturas do tipo

Mas sim:

Alem de isso dar uma puta ajuda pra IDE completar o que vc quer, vc nao tem como errar um parametro. Alem do que, refatorar fica BEM mais facil.

Mas pra criar um objeto desses eu teria que fazer:

new User(new Name("nome"), new Address("rua x"), new IdDocument(50), new UserName("teste"), new HashedPassword("jsashjdsh"));

Preciso pensar melhor! Eu gostei da idéia mas ainda preciso desenvolve-la mais.

[]'s

R

Não entendo por que o Eclipse não mostra o nome das variáveis no auto complete, isso ajudaria muito…

P

Parece bem interessante mesmo. Uma mão na roda.

Parabéns.

F

como não? aqui mostra normal.

R

É mesmo, nem reparei que mudaram isso. Podia mostrar a documentação do parâmetro junto: https://bugs.eclipse.org/bugs/show_bug.cgi?id=233528

C

como não? aqui mostra normal.

O Eclipse (ou IntelliJ, ou qqer outra IDE que nao faca milagre ou use o ParaNamer) so consegue mostrar os nomes de argumentos quando vc linka o JavaDoc da lib que esta usando no projeto.

R

Aqui mostrou o nome mesmo sem Javadoc

E

JSF Show de BOLA PAULO :smiley:
Parabéns, já começamos os testes aqui 8)

A

Provavelmente porque o fonte está visível para o Eclipse, se não ele mostraria os velhos arg0, arg1…

Ah! E parabéns para o pessoal da Caelum!

F

Só enxendo o saco (mas particularmente n gosto qdo vejo codigo assim):

“BoletoGenerator”, “withData”…
Nao seria melhor escolher 1 lingua, ao inves de mesclar as 2? algo como “GeradorDeBoleto” ou “withDate”?

No mais… parabéns pelo projeto… muito util.

S

fabiocsi:
Só enxendo o saco (mas particularmente n gosto qdo vejo codigo assim):

“BoletoGenerator”, “withData”…
Nao seria melhor escolher 1 lingua, ao inves de mesclar as 2? algo como “GeradorDeBoleto” ou “withDate”?

++

É… fica a impressão que o autor não sabe inglês ou não sabe Portugues… fora que quem usa a API de memoria
tem um problema para saber quando é usando ingles e quando não. (withData ou comDate ?)

L

Olá

fabiocsi:
Só enxendo o saco (mas particularmente n gosto qdo vejo codigo assim):

“BoletoGenerator”, “withData”…
Nao seria melhor escolher 1 lingua, ao inves de mesclar as 2? algo como “GeradorDeBoleto” ou “withDate”?

Ficou meio esquisito mesmo. E agora, o que sugeriria depois que a API veio a público? Refatorar? Lançar nova versão com wrappers para os nomes?

[]s
Luca

P

Muito legal!

Certamente será muito util já to fazendo a propagando para meus amigos desenvolvedores.

Parabéns.

:smiley:

F

Oi gente,

A discussão sobre inglês vs português é sim muito relevante. Internamente, discutimos bastante mesmo sobre isso, e sempre há controvérsia. Cada um sempre tem uma opinião diferente a respeito.

Se fizermos totalmente em inglês, como ficariam os termos do domínio (que são específicos do Brasil)? Se fizermos tudo em português, como ficam os getters? E os termos técnicos que todo mundo conhece em inglês? Se escolhessemos pelo pt-BR puro, no mínimo misturamos, já que as próprias palavras reservadas do Java são em inglês. Não há como não misturar.

Dado tudo isso, infelizmente não é possível agradar a todos e tomamos uma decisão: tudo que tem a ver com o domínio vai em pt-BR, incluindo também toda a documentação (javadoc + site). Todo o resto em inglês.

Convenhamos que isso é importante mas não é o maior de todos os problemas. Foi apenas a convenção que adotamos. Mesmo se alguém não conseguir engolir de forma alguma os nomes, pode sem problemas criar uma camada a mais de adapters com todos os métodos em inglês ou português.

Nos comentários do post no blog, o Guilherme Chapiewski fez o mesmo comentário. Vale a pena dar uma olhada e comentar por lá.

Para não ter problemas de memória e não precisar lembrar se é withData ou comDate na hora que estiver usando a API, basta entender a convenção. Ou ainda usar o auto-complete da sua ide. Foi uma falha nossa não ter deixado isso claro na documentação. Obrigado Sérgio!

L

Fabio Kung:
Oi gente,

A discussão sobre inglês vs português é sim muito relevante. Internamente, discutimos bastante mesmo sobre isso, e sempre há controvérsia. Cada um sempre tem uma opinião diferente a respeito.

Se fizermos totalmente em inglês, como ficariam os termos do domínio (que são específicos do Brasil)? Se fizermos tudo em português, como ficam os getters? E os termos técnicos que todo mundo conhece em inglês? Se escolhessemos pelo pt-BR puro, no mínimo misturamos, já que as próprias palavras reservadas do Java são em inglês. Não há como não misturar.

Dado tudo isso, infelizmente não é possível agradar a todos e tomamos uma decisão: tudo que tem a ver com o domínio vai em pt-BR, incluindo também toda a documentação (javadoc + site). Todo o resto em inglês.

Convenhamos que isso é importante mas não é o maior de todos os problemas. Foi apenas a convenção que adotamos. Mesmo se alguém não conseguir engolir de forma alguma os nomes, pode sem problemas criar uma camada a mais de adapters com todos os métodos em inglês ou português.

Nos comentários do post no blog, o Guilherme Chapiewski fez o mesmo comentário. Vale a pena dar uma olhada e comentar por lá.

Para não ter problemas de memória e não precisar lembrar se é withData ou comDate na hora que estiver usando a API, basta entender a convenção. Ou ainda usar o auto-complete da sua ide. Foi uma falha nossa não ter deixado isso claro na documentação. Obrigado Sérgio!

Pelo que vi nos projetos que passei, essa é a solução mais adotada mesmo.

Tentar traduzir tudo pra inglês fica tosco com algumas palavras. Ou alguém sabe como traduzir CARTEIRA para inglês? E colocar pegarXXX seria horrível.

PS: Carteira no sentido bancário e não carteira que você põe no bolso.

P

sergiotaborda:
É… fica a impressão que o autor não sabe inglês ou não sabe Portugues… fora que quem usa a API de memoria
tem um problema para saber quando é usando ingles e quando não. (withData ou comDate ?)

Opa! Parece que o autor nao sabe ingles nem portugues assim como parece que voce nao conhece alguns recursos magicos do Eclipse Sergio!!! Deixa eu apresenta-los:

Sergio, esse é o Control-Espaço
Control-Espaço, esse é o Sergio!

:slight_smile:

Esse tipo de API nao é aquela que a gente decora com é java.util e java.io… control espaco nela!

Brincadeiras a parte, foi realmente uma decisao dificil. Teriamos interface Bank e ai BancoDoBrasil implements Bank… E esse problema do with é o MESMO que temos com getters e setters… nao ficamos satisfeitos com nenhuma das abordagens, entao pegamos uma das duas. Se tiver uma sugestao melhor, eh só escrever!

L

Pessoal,

essa questão de dos termos da API, é de certa forma complicada.

Acredito que mistura do português com o inglês na API uniu o melhor dos dois mundos.

Não podemos deixar de tratar os termos do domínio na sua linguagem natural. Neste ponto acredito que todos concordamos.

Por outro lado, já estamos acostumados as termos em inglês get, set, with, assert, isValid, Message , etc…
Sinceramente eu não conheço ninguém que prefira utilizar estes termos em português quando está escrevendo código.

Após o reconhecimento inicial da convenção da API, provavelmente a maioria dos desenvolvedores não terá dificuldade nem para encontrar os termos específicos do dominio (como Carteira,CEP,CNPJ,etc…), nem para utilizar os termos em inglês.

Bem, essa é a minha opinião sobre a API. Apesar da estranheza inicial, a decisão de misturar os termos em português e em inglês foi acertada.

Valorizo muito as críticas, principalmente as construtivas.
É exagero dizer que o autor não sabe inglês ou não sabe português.

Para quem usa a API de forma intuitiva, não terá dificuldade em escolher “withData” ao invés de “comDate”, seguindo a convenção.

“Que ninguém se engane, só se consegue a simplicidade através de muito trabalho.” - Clarice Lispector

G

fabiocsi:
Só enxendo o saco (mas particularmente n gosto qdo vejo codigo assim):

“BoletoGenerator”, “withData”…
Nao seria melhor escolher 1 lingua, ao inves de mesclar as 2? algo como “GeradorDeBoleto” ou “withDate”?

No mais… parabéns pelo projeto… muito util.

É como se mesclasse o nome da entidade + nome do padrão.

Como Factory, Generator, Model, etc…

Mas concordo contigo que fica um pouco “chatinho” de observar assim.

C

Críticas devem ser aceitas da melhor maneira, porem não sei se é tão relevante a tal crítica feita sobre os dois idiomas mesclados no código, mas sei que é relevante o sucesso que o caelum stella está fazendo =]…

R

show de bola! :lol:

S

normlamente é Portfolio, mas pode ser Account dependendo do conceito do sistema

S

Primeiro quero reforçar que não estou tentando ofender ninguem, nem menosprezar o valor da API
ou dos seus criadores. O ponto é mais geral que isso. A escolha que vc fizerem pelo menos é consistente, mas este
tipo de decisão tem que ser feita a diário no pais todo.

A vossa posição é que existem palavras especiais como get, set ,with , etc… que correspondem com certos padrões
e palavras que correspondem com o dominio, como Boleto ou Banco.

Isso é inaceitável. E essa é o vosso problema. Vcs aceitam que existe essa diferença e ai começa o problema
Essa diferença não existe. Utilizar mais do que uma lingua numa API é uma gambiarra. Aceitem isso.

A defesa de usar duas linguas é porque “não é possivel traduzir todos os termos”. Possivel é, a questão é se o cara que escreve a API sabe traduzir todos os termos. Esse é o real problema. Para que essa pessoa não precise de um mestrado em inglês recorre-se à gambiarra de definir os termos “intradutiveis” em portugues.

Numa API como essa que se destina apenas a funcionalidades brasileiras nem é tão grave assim, mas isso automaticamente destroi a utilidade internacional da API. Afinal , todos os programas usados no brasil são escritos por brasileiros ?
Alguem já tentou utilizar uma API inglês-alemão com javadoc em alemão ? É muiiito dificil. Se todos os projetos opnesource fossem
criados nas linguas dos seus autores o mundo opensource seria um fracasso.

O get, set, etc… não são independentes de lingua, mas como os autores das outras API (componente que utiliza reflection, tipo spring para injetar valores, por exemplo) dicidiram pelo inglês, então temos que manter essa compatibilidade. Mas se o cara tivesse dicidido no inicio utilizar a sua lingua ( se o Spring não fosse escrito em ingles ou o padrão Java Bean não tivesse sido criado em ingles …) estariamso utilizando outos prefixos e sufixos.

O ponto é que o ingles é a lingua padrão para o desenvolvimento de API ( não estou falando de sistema completos ainda)
e portanto não faz sentido liberar uma API que não segue esse padrão. O problema de traduzir as palavras é irrelevante porque isso é uma limitação da equipe. É o mesmo tipo de limitação como se a equipe não soubesse java, ou conhecesse o padrão Java Bean

Qual é o problema disso ? BancoDoBrasil é um nome próprio. Não se traduz. Ou você traduziria Bank of New York ?
(Banco de Nova … o quê ?)

imagine a hierarquia Heroi <- Batman , ou vc vai traduzir para Heroi <- HomemMorcego ?

Mas Boleto não é um nome próprio. E voce poderia chamar-lhe o que vc quiser já que é vc que está fazendo o dominio da sua API.
Se vc chamar de PaymentTitle alguem o vai contradizer ?
Além do mais, tem a velha historia de Boleto vs Bloqueto. Vc escolheu Boleto e ninguem refilou disso. Isso significa que vc pode chamar oque vc quiser. Claro que vc vai tentar chamar coisas mnemonicas , mas em caso de duvida existe o Javadoc para esplicar o conceito. Por exemplo, até hoje ainda não entendi porque Date tem informações de hora. Mas foi escolhido assim, e é justificado no javadoc, então estão tudo certo.

Não estou dizendo que é facil criar essa tradução para todos os itens, estou dizendo que tem que haver um esforço.
Afinal vc decidiu seguir o padrão “get/set” , mas não o padrão “escreva em ingles para todo o mundo entender”. E a decisão
parece ser apenas baseada na preguiça ou no desconhecimento. Isso que é triste. Porque existem outras opções.

Como disse antes, o meu comentário não se refere apenas à API em epigrafe, mas a todas as API criadas no Brasil que cometem o erro de achar que só brasileiro ( ou pelo menos pessoas que entender portugues) as irão usar pois ninguem mais no mundo tem necessidade delas. Imagine se os caras da suiça (onde existem 3 linguas) tentarem fazer o mesmo, teremos 3 API ? Vc gostaria /usaria de uma API em italiano para controlar os documentos suiços ? E que tal uma API em chines ou arabe ?

F

Obrigado pela opinião Sérgio.

Não vou comentar o que você disse, porque não acho que valha a pena. Opinião cada um tem a que quiser e eu já disse os nossos motivos para a escolha dos nomes.
Quero só deixar bem claro que nossa decisão não foi por preguiça e muito menos por ignorância.

C

bom que avisou…

Muito gentis tuas palavras…

pelo menos a equipe sabe português…

Ainda não entendi por que um alemão (nada contra os alemães) iria querer utilizar nossa API, sendo que ela gera boletos exclusivamente para os bancos brasileiros…

é verdade… aliás, vou encerrar por aqui! Já são 15h00 e vou dar uma dormidinha!

S

caueguerra:
sergiotaborda:

Primeiro quero reforçar que não estou tentando ofender ninguem, nem menosprezar o valor da API
ou dos seus criadores. O ponto é mais geral que isso.

bom que avisou…

E mesmo assim não valeu de nada…
Eu não me importo que se alguem se ofenda, isso é apenas um sinal da maturidade da pessoa, mas ficar dando uma de
ad hominem não deixo passar. Isso é ainda mais lamentável porque me obriga a usar do direito de resposta.

[/quote]

Foram realmente gentis. Poderia ter dito o que realmente eu acho sobre isso.
Traduzir é uma daquelas coisas que faz quem sabe, não quem pode.

Essa não entendi. Qual é o problema com essa parte em negrito ?

contradizer | v. tr. | v. int. | v. refl.

do Lat. contradicere

v. tr.,
    dizer o contrário de;
    contrariar;
    contestar;
v. int.,
    alegar o contrário;
v. refl.,
    dizer o contrário do que se tinha afirmado.

(http://www.priberam.pt/dlpo/dlpo.aspx)

Esta tb não entendi. irão : 3ª pess. plu. fut. ind. de ir (mesma fonte que antes)

Tenho minhas duvidas. Quando a pessoa se apega a erros de digitação e se confunde
com palavras que existem é dificil decidir se a equipa realmente sabe português.
Quando a pessoa grifa não estou tentando ofender ninguem no meu próprio texto e
mesmo assim desata num ataque ad hominem infundado é dificil aceitar que a pessoa entende português.

[/quote]

lol… Bancos brasileiros ? O HSBC é brasileiro ? Até o bradesco é espanhol. O que vc quer dizer é "bancos que atuam no Brasil"
E porquê os alemães não pode usar uma API que emita boletos para bancos que atuam no brasil? Como perguntei antes: todos os sistemas usados no brasil são criados no brasil / por brasileiros ? Com certeza não. Vc sabe o que é outsourcing ? já ouviu falar da terceirização na India ?

Mas afinal porque me dou ao trabalho de chamar a atenção para o obvio quando nem sequer vou usar a API nem tenho nada a haver com Caelum ? Porque a Caelum não é o centro do mundo e o Stella não é a unica API com esse problema (vide JBoleto, BrazilUtils ) e o objetivo era discutir esse problema. Mas parece que ninguem consegue ver além do titulo do post…

Pelo menos tem todas as API feitas no brasil seguem a logica da gambiarra
https://genesis.dev.java.net/nonav/3.1/maven-site/pt-BR/index.html

Já é uma esperança.

L

Olá

Uma pena que o lançamento de uma API tão útil tenha chegado neste ponto meio belicoso. Já ficou claro aqui e no blog da caelum, os motivos das escolhas dos nomes. Em várias da aplicações que trabalhei encontrei grandes dificuldades para encontrar nomes para satisfazer a todos. Quem é que não passou por isto? E quem é que não tem aplicações com nomes estranho e até mesmo escritos erradamente?

A gente deveria para de discutir esta questão e focar nas questões técnicas da API

[]s
Luca

F

Perfeito Luca. Obrigado.

G

Luca:
A gente deveria para de discutir esta questão e focar nas questões técnicas da API

[]s
Luca


+1

Por exemplo, eu quero um exemplinho de repositories para adicionar no maven para usar os snapshots! :slight_smile:

M

sergiotaborda:
Pelo menos nem todas as API feitas no brasil seguem a logica da gambiarra
https://genesis.dev.java.net/nonav/3.1/maven-site/pt-BR/index.html

Já é uma esperança.

Ficou difícil eu não me manifestar agora. :slight_smile:

Sérgio, eu entendo seu ponto de vista e respeito. Porém, tudo é uma questão de domínio e público alvo. O genesis é um framework para auxiliar o desenvolvimento desktop. Esse é um conceito amplo e o público-alvo com certeza inclui pessoas de todas as nacionalidades.

Em compensação, o Stella foca em problemas do nosso país. Esse é um conceito restrito à realidade brasileira e o público-alvo é o desenvolvedor brasileiro. Eu diria que pena é não poder usar apenas nomes em português pra tudo nesse caso.

Eu acho que não podemos ser extremistas e usar de bom senso tendo isso em vista. O mesmo se dá com respeito ao design da API e as tecnologias usadas num projeto/produto: o genesis foi feito de um jeito muito mais “sofisticado” que as aplicações de clientes em que participei, onde pessoas de diferentes capacidades vão ter que interagir com o código. Da mesma forma, a JSR-310 tem um design ainda mais purista do que o genesis e uma API completamente diferente.

Por sinal, no sistema do cliente onde estou há 4 anos, usamos um padrão de nomenclatura muito parecido com o Stella, exceto que um pouquinho mais puxado para o português. Pronto, pode me fuzilar agora :wink:

M

Esqueci de contar um fato: já trabalhei em uma empresa onde as APIs eventualmente eram escritas em alemão - e eu tenho dificuldade de escrever corretamente o nome da empresa até hoje, por sinal :stuck_out_tongue:

No caso deles, não acho que foi uma boa decisão, pois são uma multinacional, a API já foi criada nesse cenário, o domínio do software (praticamente) nada tem a ver com a cultura do país e com certeza o público-alvo principal não era alemão. Porém, se fosse algum framework/API ligada ao sistema tributário alemão, não veria problema nenhum nisso.

E detalhe: depois de dois dias perdido, consegui me virar. Então não vejo problemas.

T
/**
 * @return Holen Sie sich die Meilensteine der Wert der Strichcode-Etikett auf den Preis.
 */
public double getBarcodeVonPreisschild ()
{
     return ...;
}
M
thingol:
/**
 * @return Holen Sie sich die Meilensteine der Wert der Strichcode-Etikett auf den Preis.
 */
public double getBarcodeVonPreisschild ()
{
     return ...;
}

Método que retorna double é perigoso em qualquer língua... :-)

G
thingol:
/**
 * @return Holen Sie sich die Meilensteine der Wert der Strichcode-Etikett auf den Preis.
 */
public double getBarcodeVonPreisschild ()
{
     return ...;
}

O pior eh que o javadoc explica o que o getter faz... literalmente uma segunda descricao do getter = comentario nao tao util no meu ponto de vista :)

M

Luca:
Olá

Uma pena que o lançamento de uma API tão útil tenha chegado neste ponto meio belicoso. Já ficou claro aqui e no blog da caelum, os motivos das escolhas dos nomes. Em várias da aplicações que trabalhei encontrei grandes dificuldades para encontrar nomes para satisfazer a todos. Quem é que não passou por isto? E quem é que não tem aplicações com nomes estranho e até mesmo escritos erradamente?

A gente deveria para de discutir esta questão e focar nas questões técnicas da API

[]s
Luca

:arrow: Quando você for pra Nova York, e visitar uma loja e comprar algumas roupas, paga em Real, se o gringo reclamar, diz que o Dollar no Brasil os seus clientes não aceitam.

P

Concordo com o Sergio. Aqui na empresa por ex, há desenvolvedores que são contratados de outros países, logo ñ falam nossa lingua - e tbm não exigem que falamos a deles, apenas uma universal, como o inglês! Acredito que deveria ser escrito somente em ingles coisas que não forem nomes próprios.

E eras…

L

Não vou dar palpite de nada, nem a favor nem contra, vou contar o que decide em um projeto aberto meu, com consulta de outros membros.

O projeto tem como foco a gestão financeira pessoal com base ESPECÍFICA das regras financeiras e leis do BRASIL. Não será (a princípio a não ter porque) ser usado por pessoas de outros países.
A escolha foi fazer tudo em pt_BR!
Óbvio que não existe um pegarNome, e sim getNome, as convenções são mantidas. Mas nomes de testes unitátios, classes, metódos e tudo são, refletem diretamente o domínio, e estão portando em português.
Como o intuíto é que futuramente o software possa servir como ponto de estudo para novos desenvolvedores, o domínio sendo em pt_BR ajuda a entender mais facilmente o domínio e as regras usadas.
Poderia ter sido tudo em inglês? sim, claro…
Mas eu preciso fazer os calculos de recisão de emprego (de um trabalhador brasileiro), décimo terceiro salário, férias, financiamentos e afins, usando nomes que ouvidos o dia todo, nos bancos, na TV e etc.

W

Que beleza.

Não posso deixar de dar meus parabéns…Fiquei contente com a nova facilidade que vamos ter.

A propósito, como sugestão: Tenho uma ferramenta minha aqui que recebe um Class, normalmente uma Entity, olha seus campos e gera um formulário JSF pra mim. Ou seja, pra cada atributo da classe, é gerado um <h:outputText para o label do campo (baseado no nome do atributo), um <h:inputText já com um value=“nomeDaEntity.atributo” e um <h:message for=“idDoInputText”. Mais ou menos isso.

Eu sei que no que eu fiz há limitações fortes, carece de patterns e por aí vai (embora funcione e me ajude muito).

Eu gostaria de saber se tem alguma coisa nesse sentido já pronto e livre para JSF?
(não me falem, por favor, do Netbeans. Eueu sei que ele gera CRUDs facinho também, mas eu não compreendi direito a forma que ele faz, então pra mim, que uso eclipse, não deu)

obrigado.
t+

L

e ai o problema do Jboss ja teve solucao???

19:45:37,843 INFO  [STDOUT] condicao 5 Else...:
19:45:37,953 INFO  [STDOUT] entrando em modo setFocus().........
19:45:39,046 INFO  [STDOUT] 19:45:39,046 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:96)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:133)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getUriFromTld(TagLibCache.java:382)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.scanJar(TagLibCache.java:329)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:268)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:261)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:101)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
	at org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:530)
	at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
	at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:476)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:133)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.Lgweb.Tcc.Util.SecuritFilter.doFilter(SecuritFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
19:45:39,046 WARN  [lifecycle] executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@2f1d7a) threw exception
javax.faces.FacesException: org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:413)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.Lgweb.Tcc.Util.SecuritFilter.doFilter(SecuritFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:106)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
	at org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:530)
	at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
	at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:476)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:133)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	... 39 more
Caused by: org.apache.jasper.JasperException: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.scanJar(TagLibCache.java:343)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:268)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:261)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:101)
	... 63 more
Caused by: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:101)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:133)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getUriFromTld(TagLibCache.java:382)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.scanJar(TagLibCache.java:329)
	... 66 more
Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:96)
	... 69 more
19:45:39,062 INFO  [STDOUT] 19:45:39,062 ERROR [BaseXMLFilter] Exception in the filter chain
org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:106)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
	at org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:530)
	at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
	at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:476)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:133)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.Lgweb.Tcc.Util.SecuritFilter.doFilter(SecuritFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.scanJar(TagLibCache.java:343)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:268)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:261)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:101)
	... 63 more
Caused by: org.apache.jasper.JasperException: XML parsing error on file file:/C:/rhdevstudio/jboss-eap/jboss-as/server/default/./deploy/MySystem2.war/WEB-INF/lib/caelum-stella-faces-1.0.jar: (line 2, col 6)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:101)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:133)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getUriFromTld(TagLibCache.java:382)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.scanJar(TagLibCache.java:329)
	... 66 more
Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at org.apache.jasper.xmlparser.Par
19:45:39,062 INFO  [STDOUT] serUtils.parseXMLDocument(ParserUtils.java:96)
	... 69 more
19:45:39,062 INFO  [STDOUT] 19:45:39,062 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:96)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:133)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getUriFromTld(TagLibCache.java:382)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.scanJar(TagLibCache.java:329)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:268)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:261)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:101)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
	at org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:530)
	at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
	at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:476)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:133)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.Lgweb.Tcc.Util.SecuritFilter.doFilter(SecuritFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
19:45:39,078 INFO  [STDOUT] 19:45:39,078 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanPI(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:96)
	at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:133)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getUriFromTld(TagLibCache.java:382)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.scanJar(TagLibCache.java:329)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:268)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:261)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:101)
	at org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
	at org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:530)
	at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
	at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:476)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:133)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.Lgweb.Tcc.Util.SecuritFilter.doFilter(SecuritFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
V

Estoui tendo problemas ao implementar as taglibs no jsp, alguém teve o mesmo problema da taglib do stella não ser reconhecida?

F

Oi Vinicius,

As taglibs por enquanto são só para o Java Server Faces. Para funcionar, você precisa usar o jsf 1.2 e garantir que o seu web.xml está pelo menos na versão 2.4 (ou superior).

F

Esse tá difícil viu. Até acreito que já tenha sido corrigido, mas não conseguimos testar no jbossweb ainda.

C

Caros,

Acabamos de colocar o Stella no Jira. Para pedir novas features ou fazer report de bugs, basta acessar http://stella.caelum.com.br/jira e se cadastrar.

Toda contribuição é bem-vinda!

L

lgweb:
Tentei utilizar mas porem tomei este erro logo de cara:

Coloquei os dois .jar no classpath,Falta algo?

lgweb,

obrigado, por sua colaboração.
Você esta certo, basta colocar os dois .jar no classpath mesmo.
O problema foi corrigido realizando uma pequena modificação em um arquivo xml.

Repliquei o problema utilizando jboss-web-2.1.0.GA e funcionou. Você também pode testar com a versão do trunk.

Além disso, também criei um issue desse problema no Jira do Stella .

Abraço

L

Onde posso baixar a versão atualizada para o jboss?
Fui no jira mas naum sei como baixar,alguem pode ajudar com um link? :lol:
Flw,abraços.

B

o Stella é de uso livre?
não tive como ler todos os posts…

Eu gostei da proposta desta framework! To conhecendo agora.

M

Sei que esse topico foi trazido das cinzas, mas eu sempre fui curioso em saber por que a Caelum se chama assim. Gostei.

V

Oi Paulo!
Cara… tem uma constelação chamada Caelum: http://en.wikipedia.org/wiki/Caelum
Sempre pensei que o nome veio daí!!!
Criativos os nomes!
Parabéns pra galera da Caelum!

Criado 21 de maio de 2008
Ultima resposta 21 de mai. de 2008
Respostas 85
Participantes 41