Pular para o conteúdo principal

"Content is not allowed in prolog" - Entendendo exceção no Seam

Recentemente tive um problema de edição em um arquivo .xhtml utilizando JBoss Seam, Richfaces e afins.

A princípio a mensagem de erro não dizia muito a respeito da causa do mesmo:

com.sun.facelets.FaceletException: Error Parsing /consulta.xhtml: Error Traced[line: 1] Content is not allowed in prolog.

"O conteúdo não é permitido no prólogo". Mas que conteúdo? Em qual prolog?

Depois de dar uma pesquisada descobri que o erro acontece em vista de terem sido colocados alguns caraceteres inválidos antes da declaração de documento xml na página xhtml.

Em outras palavras, a primeira coisa que deve constar em um documento xml (afins) deve ser:

<?xml version="1.0" encoding="utf-8"?>

Qualquer coisa antes disso, até mesmo um simples espaço em branco, pode gerar o erro em questão.

Por fim, lembre-se de que a declaração de documento xml segue o padrão de encoding definido. Logo temos:

<!-- Incorreto -->
<?xml version="1.0" encoding="UTF-8"?>

<!-- Correto -->
<?xml version="1.0" encoding="utf-8"?>

É importante ater a estes detalhes para evitar dores de cabeça e perda de tempo... :-)

Comentários

  1. Muito Obrigado, Me ajudou muito!

    ResponderExcluir
  2. boa tarde Diogo, o pessoal da Softwell que me passou a sua dica.
    Verifiquei sua sugestao e apliquei... estou utilizando o soapUI para fazer os testes...

    Porem sempre esta ocorrendo o seguinte erro (abaixo)... infelizmente já nao sei o que pode ser... voce poderia me dar alguma outra sugestao ?

    Obrigado.
    Erro no envio do Web Service. - Mensagem: Error on line 2: Content is not allowed in prolog. - Exceção: org.jdom.input.JDOMParseException: Error on line 2: Content is not allowed in prolog.

    ResponderExcluir
    Respostas
    1. Olá Handrei,

      Qualquer coisa que vier antes desse conteúdo vai gerar esse erro. Na mensagem de erro ele tá te dizendo que o erro tá na linha 2. Pode postar ela aqui pra gente analisar?

      Excluir
  3. Pô cara, valeu!
    Errinho besta mas que me tomou uns 40 minutos aqui.

    Abraço!

    ResponderExcluir
  4. Muito bom cara o meu era apenas um colchete que digitei antes do xml sem querer,, mas me ajudou olhar no lugar certo! abraço
    Marques

    ResponderExcluir
  5. Bom dia,

    Não estou conseguindo validar arquivos xml, exportando do OJS para o DOAJ, o mesmo dá um erro "content is not allowed in prolog"



    "content is not allowed in prolog" o erro aparece nessa linha-


    ResponderExcluir
  6. Boa Noite! Preciso de ajudar faço o projeto e quando concluir aparece o seguinte erro:"Gradle project sync failed.Basic functionality ( e.g. editing, debugging)will not work properly."

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Integrando Android e PayPal com Java e MySQL - Parte 1

Uma das funcionalidades mais importantes da maioria dos apps mobile de hoje em dia é a possibilidade de se integrar com plataformas de pagamento online, tais como PagSeguro, MercadoPago ou a mais famosa de todas (a nível internacional): PayPal . Na maioria dos apps de eCommerce, que se caracterizam principalmente por compras e vendas online, não basta somente ter uma boa interface e lógica de negócio implementadas, é também preciso gerenciar tudo isso de forma segura, e para isso precisamos fazer uso de Web Services, bancos de dados, aplicações e outros tipos de recursos e operações no lado do servidor. Com o objetivo de cobrir uma implementação pouco vista em português, esse artigo, dividido em duas partes, visa ensinar como construir uma aplicação básica em Android , usando a biblioteca SDK do PayPal , uma integração server side com um projeto em Java Web , que fará uso de requisições HTTP via Web Services Restful (implementação Jersey ) e salvará os dados em um schema MySQ

Como acessar um iframe e seus elementos via jQuery?

Recentemente tive  um problema no projeto pois sentiu a necessidade de acessar um valor de um input que estava dentro de um iframe. Esse tipo de situação não é tão comum, uma vez que geralmente acessamos os valores do iframe para fora. Para acessar, de dentro de um iframe, um valor externo, utilizamos o seguinte código: $('#idDoElementoExterno', parent.document).val(); Entretanto, nunca tínhamos passado pela situação contrária. Pesquisando um pouco descobrimos uma alternativa, porém em JavaScript. Para ficar melhor o entendimento, vamos simular uma situação aqui. Temos uma página html "A.html" e dentro da mesma existe um iframe que aponta (src) para uma página "B.html": <!-- A.html --> <html> <head> <title>Testando iframe - jQuery</title> <script language="JavaScript"> function exibeValor() { // alert aqui! } </script> </head> <body> <input typ