Estou usando o maven para criar um webapp dinâmico no Eclipse. Eu adicionei algumas pastas como src/test/java
e src/test/resources
. Também mudei a biblioteca no Java Build Path para obter o JavaSE-1.7. Está tudo bem até aqui.
Quando tentei alterar o módulo da Web dinâmica de projetos da faceta, algo deu errado. Eu mudei o Java para 1.7 no mesmo lugar. E ainda me disse que não é possível alterar a versão da faceta do projeto Dynamic Web Module para 3.0.
Eu mudei tudo que afetaria a mudança que eu penso.
Respostas:
Eu atualizei meu
web.xml
e depois apenas Maven -> Atualizar projeto ...
fonte
Outra maneira é editar o próprio arquivo de configuração da faceta do projeto:
org.eclipse.wst.common.project.facet.core.xml
Altere a versão do módulo da web dinâmico nesta linha para 3.0 -
<installed facet="jst.web" version="2.5"/>
E depois:
Você encontrará esse arquivo no
.settings
diretório dentro do projeto Eclipse.fonte
Eu acho que tive o mesmo problema que você. Meu web.xml possuía a versão 2.5, enquanto o projeto tinha (clique com o botão direito do mouse em Projeto-> Propriedades-> Facetas do projeto->) Dynamic Web Module 2.3.
Embora eu tenha tentado alterar a versão de 2.3 para 2.5, o ECLIPSE não permitiu. Solução: removi a marca de seleção sob o título Dynamic Web Module, salvei e tive o Update Project. O novo despertar automático está entrando na caixa com a versão correta. Eu uso o Eclipse Kepler.
ps: veja os comentários de Jonathan logo abaixo, muito úteis.
fonte
Abrir
org.eclipse.wst.common.project.facet.core.xml
arquivoMude a versão assim
<installed facet="jst.web" version="3.1"/>
Apenas isso funcionou para mim.
fonte
Eu tive o mesmo problema e tentei remover o projeto e adicioná-lo novamente. O que fez o truque foi remover o
.settings
diretório.fonte
Excluir
e importe novamente o projeto maven.
fonte
O que funcionou para mim:
No seu POM - você precisa definir o plug-in do compilador para a versão 1.8 (ou 1.7) na
<build>
seção:Assegure-se de que a alteração Java Build mostre 1.8. Caso contrário, clique em EDITAR e selecione o que deve ser.
Em vez de alterá-lo:
a) desmarque o Dynamic Web Module
b) aplicar
c) verifique novamente. Nova versão 3.0 deve ser definida. **
Após aplicar e verificar novamente:
Espero que isto ajude.
fonte
Clique com o botão direito do mouse no projeto → Propriedades ; no Project Facets , desmarque Dynamic Web Module (a versão deve ser 3.1 ) e desmarque o JavaServer Faces (a versão é 2.2 ).
Mude isso:
para isso:
Em seguida, remova o prefixo antes
param-name
e assim por diante .Finalmente, Maven -> Atualizar projeto .
fonte
abra a visualização Navegador e a etapa seguinte
fonte
Abra web.xml da estrutura do projeto http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 "> Aplicativo da Web Servlet 3.0
e atualize o arquivo web.xml, por exemplo, change version = "2.5"
Altere também o arquivo org.eclipse.wst.common.project.facet.core.xml do arquivo .settings do projeto Siga as etapas 1. Janela> Mostrar modo de exibição> Outros> Geral> Navegador
Há uma pasta .settings no diretório do seu projeto
Altere a versão do módulo da web dinâmico nesta linha para 2.5 4. Altere a versão Java nesta linha para 1.5 ou superior
Agora atualize seu projeto e prepare-se para executar no seu servidor.
Siga o blog da solução http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html
A solução é produzida com ilustrações de imagens
fonte
As melhores e mais simples etapas para esse problema: 1) Propriedades -> Facetas do projeto -> Desmarque / desmarque a caixa de seleção Dynamic Web Module -> Apply 2) Agora mude para a versão desejada Apply 3) Marque a caixa de seleção Dynamic web Module .. - Agora você está pronto -
fonte
É mais uma maneira de resolver esse problema (confira, espero que ajude a resolver seu problema)
PROBLEMA
Não é possível alterar a versão do módulo da Web dinâmico da faceta do projeto 2.3 para 3.0
SOLUÇÃO
fonte
O truque web.xml funciona porque agora você está dizendo explicitamente ao WTP que está usando essa versão específica do servlet, independentemente do suporte do contêiner.
No meu caso, estou usando a configuração de anotação em um projeto Maven e não tenho um arquivo web.xml. Acontece que, na ausência de um web.xml, o WTP examina as dependências do Maven para determinar qual versão do Servlet usar. No meu caso, eu havia definido o seguinte:
Mudá-lo para 6.0 corrigiu o problema e agora está usando o Servlet 3.0 em vez de 3.1, que é o padrão para o JavaEE 7. Como eu tive que ir do Tomcat 8 para o Tomcat 7, o Tomcat 7 suporta apenas o perfil da Web do JavaEE 6. Agora as coisas funcionam maravilhosamente.
fonte
Eu tive o mesmo problema, editar o web.xml e alterar o arquivo na pasta .settings sozinho não ajudou. Minha solução foi apontar diretamente o plug-in do compilador maven para usar a versão java desejada, editando o pom.xml:
Agora execute Maven-> Atualizar projeto e, depois disso, você pode alterar a versão dos servlets em propriedades-> facetas do projeto-> versão do módulo Dynamic Web ou, conforme escrito anteriormente, editando manualmente org.eclipse.wst.common.project.facet.core. xml na pasta .settings do seu projeto.
fonte
No meu caso, o web.xml foi referenciado por um dtd. Depois que eu mudei isso para a referência xsd como a postada por Sydney, funcionou.
fonte
Eu tive o mesmo problema, excluir a pasta .settings resolveu o problema
fonte
Minha solução para o problema que não me permitiu alterar a versão da faceta do projeto Dynamic Web Module no Eclipse (Mars) foi:
fonte
Se a resposta de Sydney ainda não ajudar, tente abaixo. Depois de seguir a resposta de Sydney, vá para Propriedades> Facetas de projetos desmarque Dynamic Web Module e altere a versão para corresponder ao seu web.config e, em seguida, selecione novamente. Aplicar> Salvar e atualização do Maven.
web.xml
fonte
Tentei muitas das respostas aqui, mas nenhuma delas funcionou para mim. Então eu encontrei um artigo sobre o meu problema aqui . Eu pensei em compartilhá-lo aqui também.
Abaixo estão os passos dados em breve.
fonte
Para um projeto da web do maven eclipse, a alteração da versão do módulo da web dinâmica precisa verificar três locais. Se alguém usar o eclipse e depois de verificar o seguinte: 1) web.xml
2) maven:
3) caminho de construção do eclipse e a versão do compilador é 1.7
você ainda tem um marcador de erro no maven:
Em seguida, você pode: desmarcar o módulo dinâmico da web e verificar novamente. Eu acho que é porque as configurações do arquivo eclipse estão corrompidas de alguma forma. Sobre a segunda dica do tomcat, qual versão é uma boa nota.
fonte
Eu recebi esse erro ao tentar converter um projeto Java geral para o projeto Maven .
O que fiz foi determinar a versão do compilador Java que é requerida pelo meu projeto. Para o meu projeto, a versão Java mínima é
1.8
.Ao abaixar a versão para algo menor que o
1.8
meu IDE, você começará a reclamar que não reconhece um monte de bibliotecas importadas; portanto, eu determino a minha versão Java mínima como1.8
Agora verifique se a versão do compilador Java usa a mesma versão Java que você definiu nas Facetas do projeto.
Após as alterações, o erro deve ser resolvido. Se o erro persistir, clique com o botão direito do mouse em projeto -> Maven -> Atualizar projeto
fonte
Fazer uma atualização ou reimportação do projeto não ajudou. @ A resposta de Sydney está certa; além disso, eu tenho que recriar o projeto em um espaço de trabalho diferente, como dito no JavaServer Faces 2.2, requer o Dynamic Web Module 2.5 ou mais recente
fonte
Abra o arquivo org.eclipse.wst.common.project.facet.core.xml e altere a versão do jst.web para 3.0. Atualize também o web.xml para a versão 3.0. Salve e atualize o projeto. Espero que isto ajude. Estou usando o Eclipse Juno
fonte
Esta é uma variação da resposta do pagurix, mas usando o Eclipse Mars.
Altere seu arquivo web.xml para web.bak
Ignore os erros, vamos regenerá-lo a seguir.
Acesse as propriedades do projeto -> facetas do projeto e defina a versão do Dynamic Web Module para o que você precisa. Agora, o Eclipse permite que você salve.
Agora clique com o botão direito do mouse no projeto. Escolha Java EE Tools -> Gerar Stub do Descritor de Implementação.
Isso cria um novo web.xml com a versão necessária.
Abra o novo web.xml e copie o cabeçalho XML e a tag de abertura completa do aplicativo da web para o seu web.bak original, exclua o novo web.xml e renomeie o web.bak de volta para web.xml.
Feito.
fonte
O meu estava
Web Module 3.0
dentroweb.xml
, mas noproperties>Dynamic Web Module
estava ligado3.1
Eu mudei o
web.xml
para isso:após essa alteração, faça:
right click on project>Maven>Update Project...
fonte
This Problem With version clique com o botão direito do mouse em projeto-> propriedades-> Project Facets-> clique com o botão direito do mouse em Dynamic Web Module-> desbloqueie-> desmarque-> selecione a versão 2.5-> Aplicar-> Atualize o maven
fonte
Resolvi o problema modificando o web.xml com a versão correta, os locais xsd e modificando o org.eclipse.wst.common.project.facet.core.xml com a versão correta e atualizando o maven .
fonte
atualizar maven trabalhou para mim
selecione o projeto, pressione ALT + F5 e selecione o projeto, clique em ok
fonte
Eu tive o mesmo sintoma com uma cura diferente. Eu estava tentando atualizar meu webapp JSF 2.2.4 / Spring 3.0 para JSF 2.3, a fim de aproveitar os novos ganchos de soquete web JSF lá e o Eclipse (na verdade STS) não cooperaria. No Project Facets do Eclipse, o JSF 2.3 nunca se tornou disponível até que eu editei diretamente o arquivo org.eclipse.wst.common.project.facet.core.xml, conforme indicado nas respostas anteriores - o valor mais alto seria 2,2.
Aqui estão os aros pelos quais eu pulei. Não sei se tudo isso foi necessário porque fundamentalmente não entendo toda essa configuração.
No Eclipse, recebia frequentemente um aviso assustador: "Modificar um projeto facetado quando implementações de uma ou mais facetas instaladas não estão disponíveis pode resultar em um projeto corrompido. Tem certeza de que deseja continuar?" Isso me levou a fazer confirmações mais frequentes, mas nenhuma corrupção ocorreu.
Atualize as seguintes dependências do Maven:
... para:
... e ...
... para:
Eu tive que atualizar minhas declarações de namespace web.xml de:
... para:
Eu tive que atualizar as facetas do projeto -> Dynamic Web Module de 2.5 para 3.0. Eu tentei 3.1, mas obtive erros.
Nesse processo, frequentemente recebi o erro no título desta postagem, "Não é possível alterar a versão da faceta do projeto Dynamic Web Module para 3.0" e o Eclipse se recusou a compilar o projeto ou oferecer o JSF 2.3 nas facetas do projeto. Quando editei o arquivo org.eclipse.wst.common.project.facet.core.xml conforme os erros desapareceram, o Eclipse ofereceu o JSF 2.3 no Project Facets e o projeto compilou e executou bem no Tomcat 9.0.8. No entanto, as Facetas do projeto ainda avisavam "Não foi possível encontrar a implementação da versão 2.3 da faceta do projeto jst.jf. A funcionalidade será limitada." Eu suspeito que isso significa simplesmente que o preenchimento automático e outras conveniências do Eclipse não estarão disponíveis porque não pode encontrar a implementação do JSF 2.3 declarada no meu POM.
Espero que isso ajude alguém. As pesquisas do Google renderam apenas este post de Ali Bassam e indiretamente BalusC, que ajudou.
fonte
Eu tive o mesmo problema - acabei de remover o projeto do meu espaço de trabalho, depois limpei os "arquivos / pastas eclipse, por exemplo: .project, .settings, etc) e depois importei o projeto maven novamente, ele funcionou.
fonte