programing

동적 웹 모듈 3.0 -- 3.1

lovejava 2023. 8. 12. 09:39

동적 웹 모듈 3.0 -- 3.1

나는 메이븐화된 코드 기반의 Spring 3.2.4 웹 앱을 구성했습니다.메이븐/pom.xml로 앱을 처음 구축했을 때 web.xml이 없다는 오류가 발생했습니다.먼저 빈 web.xml을 만들려고 했습니다.이것은 프로젝트의 양상이 바뀌는 순간이었습니다. (그리고 왜 그런지 모르겠습니다.)동적 웹 모듈 3.0에서 3.1로 전환되었으며 이는 되돌릴 수 없습니다.동적 웹 모듈 3.0으로 다시 변경하려면 어떻게 해야 합니까?

enter image description here

또한 JAX-RS를 제거할 수 없습니다.이를 시도하면 다음과 같은 결과를 얻을 수 있습니다.

Failed while uninstalling JAX-RS (REST Web Services) 1.0.
org.eclipse.jst.javaee.web.internal.impl.WebAppImpl cannot be cast to org.eclipse.jst.j2ee.webapplication.WebApp

나중에 저는 pom.xml에 적절한 플러그인을 삽입함으로써 메이븐 컴파일 오류를 피할 수 있다는 것을 알게 되었습니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>

나는 일식에서 비슷한 문제를 겪었고 나를 위해 그것을 고치는 유일한 방법은

  • 웹 모듈을 제거합니다.
  • 적용합니다.
  • 모듈 버전 변경
  • 모듈 추가
  • 구성(대화 상자 하단에 있는 추가 구성 사용 가능한 링크)
  • 적용합니다.

기본적으로 /WebContent/에서 사용자의 웹 파일을 찾을 것이므로 웹 모듈을 적용하기 전에 구성해야 합니다. Maven 프로젝트 구조는 그렇지 않습니다.

편집:

다른 도움이 되지 않을 경우를 대비해 두 번째 방법이 있습니다.

  • 이클립스를 종료하고 파일 시스템의 프로젝트로 이동한 다음 .settings 폴더로 이동합니다.
  • .org.eclipse.wst.common.project.facet.core.xml백업을 수행하고 웹 모듈 항목을 제거합니다.
  • 여기서 웹 모듈 버전을 수정할 수도 있지만 보증은 없습니다.

버전 3.1을 사용하려면 다음 스키마를 사용해야 합니다.

  • http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd

되지 않으므로 3.0과 3.1을 간단히 합니다. 3.1은 Sun과 동일합니다.3_0.xsd3_1.xsd작동하지 않습니다.

다음과 같이 표시해야 합니다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee" 
         xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee">

</web-app>

또한 최신 버전을 사용하고 있는지 확인하십시오.pom.xml .그은것,

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        ...
    </configuration>
</plugin>

그리고.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

마지막으로 Java 7 또는 8로 컴파일해야 합니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

저도 같은 문제가 있었고 org.eclipse를 편집해서 수정했습니다.wst.common.project.facet.core.xml.

이 파일에서 저는 다음 줄을 변경할 수 있었습니다.

<installed facet="jst.web" version="3.1"/>

로 돌아가다.

<installed facet="jst.web" version="3.0"/>

그것이 저에게 문제를 해결해 주는 것처럼 보였습니다.

Win7, Tomcat7에서 메이븐 프로젝트가 활성화된 이클립스 마스에서 메이븐-폼 설정으로 실행했습니다.실행 중이 아닌 서버에서는 이 화면에서 3.1에서 3.0으로 변경하기만 하면 되었습니다.

Dynamic Web Module을 비활성화하는 것이 저에게 중요했습니다.그런 다음 버전을 변경한 다음 동적 웹 모듈을 다시 활성화합니다.

Eclipse 프로젝트 속성을 엽니다. 프로젝트 측면에서 "Dynamic Web Module"을 선택 취소합니다.OK Maven -> 프로젝트 업데이트를 클릭합니다.

특정한 경우 이 문제는 동적 웹 앱용으로 릴리스된 maven-archtype-webapp으로 인해 발생하며 ver.2.5(제작된 web.xml 및 관련 xsd 참조)와 관련이 있습니다.프로젝트 패싯을 동적 webapp > 2.5로 변경하려고 하면 src 폴더 구조가 구문적으로 변경됩니다(2.5는 3.1과 다릅니다). 그러나 공식적으로는 그렇지 않습니다.

따라서 변경사항을 적용할 경우 null 포인터 예외가 발생합니다.

이 문제를 해결하려면 프로젝트 패싯 구성에서 기본 구성을 설정해야 합니다.변경 사항을 적용한 다음 Java 빌드 경로로 이동하면 /src 폴더를 제거하고 /src/main/java 폴더를 생성해야 합니다(규정을 준수하려면 /src/main/resources 및 /src/test/java도 필요함). 원하는 구성(3.0, 3.1)으로 다시 변경한 후 적용합니다.

프로젝트 org.eclipse를 열었습니다.wst.common.project.facet.core.xml 및 처음 변경된 후 웹 모듈 태그로 줄을 제거했습니다.프로젝트를 정리하고 매번 Tomcat에서 시작했지만 여전히 실행되지 않았습니다.원래대로 라인을 반환하고 프로젝트를 정리했습니다.이클립스에서 Tomcat 설정을 열고 Tomcat 시작에 프로젝트를 수동으로 추가했습니다(오른쪽 클릭 + 추가 및 제거).프로젝트를 클릭하고 서버에서 실행...을 선택하면 모든 것이 정상입니다.

프로젝트로 이동하여 이 디렉토리에서 ".settings" 디렉토리를 찾으십시오.
이름이 지정된 xml 파일 열기:
오르간 연주wst.common.project.facet.core.xml
3)

<?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
    <fixed facet="wst.jsdt.web"/>
    <installed facet="java" version="1.5"/>
    <installed facet="jst.web" version="2.3"/>
    <installed facet="wst.jsdt.web" version="1.0"/>
 </faceted-project>

그냥 바꿔요.웹 버전을 3.0으로, Java 버전을 1.7 또는 1.8로(jdk 버전을 사용하는 현재 기준)

변경 내용web.xml에 철하다.WEB-INF디렉토리, 이 기사를 참조하십시오.
https://www.mkyong.com/web-development/the-web-xml-deployment-descriptor-examples/
이동pom.xml다음 행을 파일로 붙여넣습니다.

<build>
    <finalName>YOUR_PROJECT_NAME</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source> THIS IS YOUR USING JDK's VERSION
                <target>1.8</target> SAME AS ABOVE
            </configuration>
        </plugin>
    </plugins>
</build>  
  1. 작업영역 위치로 이동
  2. 프로젝트 폴더 선택
  3. .폴더 설정
  4. 편집 "filename.dll"wst.common.project.facet.core"
  5. 설치된 facet="jst"를 변경합니다.web" 버전="3.0"

언급URL : https://stackoverflow.com/questions/19661135/dynamic-web-module-3-0-3-1