[SPRING] TLD "META-INF / c.tld"를 읽을 수 없습니다.
SPRINGTLD "META-INF / c.tld"를 읽을 수 없습니다.
JSTL에이 문제가 있습니다. 나는 지난 며칠 동안 붙어 있습니다. 어떤 도움을 주셔서 감사합니다.
Tomcat 6.0.28 Eclipse : Helios
Pom.hml :
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
JSP :
<%@ page session="true"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="utilfn" uri="/utility-functions" %>
веб.хмл :
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
관리자를 사용하여 Tomcat 6에 메이븐 빌드 전쟁을 배포하면 제대로 작동합니다. 내가 "Run As> Run On Server"를 이클립스로 실행하면 다음과 같이 나타납니다.
내가 보는 곳이라면 똑같은 말을한다.
그리고 전쟁을 독립적으로 전개 할 수 있기 때문에 그들은 괜찮아 보입니다. 그래서 여기서 뭐가 잘못 됐어!?
해결법
-
==============================
1.그걸 확인해. .metadata / .plugins / org.eclipse.wst.server.core / tmp0 / wtpwebapps / Myproject / WEB-INF / lib / standard-1.1.2.jar는 손상되지 않습니다 (필요한 경우 정리).
그걸 확인해. .metadata / .plugins / org.eclipse.wst.server.core / tmp0 / wtpwebapps / Myproject / WEB-INF / lib / standard-1.1.2.jar는 손상되지 않습니다 (필요한 경우 정리).
-
==============================
2.Indigo Eclipse 3.7을 사용하여 이동하고 m2e의 최신 업데이트를 가져온 후이 문제가 발생했습니다. 아래 종속성이 제거되었습니다.
Indigo Eclipse 3.7을 사용하여 이동하고 m2e의 최신 업데이트를 가져온 후이 문제가 발생했습니다. 아래 종속성이 제거되었습니다.
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency>
m2e의 새로운 버전이 jsp 컴파일 라이브러리를 이미 가지고 있기 때문에 이슈가 사라진 이유는 확실하지 않습니다.
-
==============================
3.제거 : javax.servlet.jsp JSP로 - API를 2.0 제공된
제거 : javax.servlet.jsp JSP로 - API를 2.0 제공된
당신 pom.xml에서 그리고 그 일을해야 .. 그것은 내 사건에 근무 :-)
-
==============================
4.maven / m2eclipse 플러그인에 문제가있는 것 같습니다. 심지어 나는 똑같은 문제를보고있다. 기본적으로 모든 jar 파일을 서버 lib 디렉토리로 푸시합니다. 범위 "제공된"jar 파일을 포함합니다. 이 문제는 이전 버전의 m2eclipse에서 수정되었습니다. 그러나 그것은 다시 소개되었습니다.
maven / m2eclipse 플러그인에 문제가있는 것 같습니다. 심지어 나는 똑같은 문제를보고있다. 기본적으로 모든 jar 파일을 서버 lib 디렉토리로 푸시합니다. 범위 "제공된"jar 파일을 포함합니다. 이 문제는 이전 버전의 m2eclipse에서 수정되었습니다. 그러나 그것은 다시 소개되었습니다.
-
==============================
5.빠른 수정:
빠른 수정:
.classpath 및 .project 및 .settings / org.eclipse.wst.common.component의 백업본을 만듭니다.
다음 명령을 실행하십시오.
mvn eclipse:eclipse
또는 Maven 하위 메뉴에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하면 같은 작업을 수행한다고 생각되는 프로젝트 업데이트 명령이 생겼습니다.
다시 게시하십시오.
설명:
모든 Maven 종속성을 배포 어셈블리로 프로젝트에 추가했을 가능성이 높습니다. 이렇게하면 모든 Maven 클래스 경로 항목이 WEB-INF / lib 디렉토리에 복사됩니다. 프로젝트의 루트에있는 .classpath 파일을 열면 다음 XML을 찾을 수 있습니다.
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> </attributes> </classpathentry>
그것은이 경우 문제가되는 모든 .jar 파일을 복사하는 것을 의미합니다.
프로젝트를 업데이트하면 위의 XML 블록이 제거되고 JAR 파일이 명시 적으로 나열됩니다.
따라서 .classpath를 다시 열면 다음과 같이 표시됩니다.
<classpathentry kind="var" path="M2_REPO/com/google/code/gson/gson/2.2.1/gson-2.2.1.jar" sourcepath="M2_REPO/com/google/code/gson/gson/2.2.1/gson-2.2.1-sources.jar"/> <classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar" sourcepath="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar"/> ...
이것은 여전히 필요한 classpath를위한 것이지만 lib에 복사하는 종속성을 제거했습니다. 대신 .settings / org.eclipse.wst.common.component /를 열면 JAR 파일이 명시 적으로 나열됩니다.
<dependent-module deploy-path="/WEB-INF/lib" handle="module:/classpath/var/M2_REPO/com/google/code/gson/gson/2.2.1/gson-2.2.1.jar"> <dependency-type>uses</dependency-type> </dependent-module>
그리고 jsp-api-2.1.jar가 없어졌습니다. 같은 논리를 다른 JAR 파일에 적용하십시오.
사람이 자동으로 만드는 방법을 알고 있습니까?
-
==============================
6.플랫폼 : 일식 3.7 인디고, 바람둥이 6.0.29 pom.xml의 다음 종속성을 주석 처리했습니다.
플랫폼 : 일식 3.7 인디고, 바람둥이 6.0.29 pom.xml의 다음 종속성을 주석 처리했습니다.
javax.servlet org.apache.taglibs
이것으로 문제가 해결되었습니다 (Tomcat을 통해 제공됨).
-
==============================
7.제이의 대답에 동의합니다. 여기에도 같은 문제가 있습니다. pom.xlm에서 jsp-api를 제거하면 jsp-api jar에서 jspWriter 클래스를 찾을 수 없기 때문에 maven 테스트가 실패합니다. jsp-api를 pom에두고 '제공된'또는 'test'로 설정하면 m2e 플러그인이 jsp-api jar를 maven 종속성에 푸시하여 내 tomcat 배포 된 lib에 포함 시키므로 Tomcat 측은 실패합니다. jsp-api는 애플리케이션 서버에서 제공하기 때문에 제공된대로 pom.xml에 선언해야하므로 플러그인 문제라고 말할 수 있습니다. 나는이 문제를 해결할 방법을 찾지 못했지만 Tomcat 서버가 동기화 될 때마다 수동으로 jsp-api를 삭제했다.
제이의 대답에 동의합니다. 여기에도 같은 문제가 있습니다. pom.xlm에서 jsp-api를 제거하면 jsp-api jar에서 jspWriter 클래스를 찾을 수 없기 때문에 maven 테스트가 실패합니다. jsp-api를 pom에두고 '제공된'또는 'test'로 설정하면 m2e 플러그인이 jsp-api jar를 maven 종속성에 푸시하여 내 tomcat 배포 된 lib에 포함 시키므로 Tomcat 측은 실패합니다. jsp-api는 애플리케이션 서버에서 제공하기 때문에 제공된대로 pom.xml에 선언해야하므로 플러그인 문제라고 말할 수 있습니다. 나는이 문제를 해결할 방법을 찾지 못했지만 Tomcat 서버가 동기화 될 때마다 수동으로 jsp-api를 삭제했다.
-
==============================
8.Eclipse를 사용하면 'Eclipse WTP 용 Maven 통합'을 설치했는지 확인하십시오. WTP가없는 다른 플러그인을 사용하면 클래스 경로를 변경하고 webapp에 servlet-api.jar을 포함시킵니다.
Eclipse를 사용하면 'Eclipse WTP 용 Maven 통합'을 설치했는지 확인하십시오. WTP가없는 다른 플러그인을 사용하면 클래스 경로를 변경하고 webapp에 servlet-api.jar을 포함시킵니다.
-
==============================
9.pom.xml의 jstl import에서 jsp-api 종속성을 제외해야합니다.
pom.xml의 jstl import에서 jsp-api 종속성을 제외해야합니다.
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <artifactId>jsp-api</artifactId> <groupId>javax.servlet.jsp</groupId> </exclusion> </exclusions> </dependency>
-
==============================
10.jsp-api 2.0을에서 제거했습니다. .metadata / .plugins / org.eclipse.wst.server.core / tmp0 / wtpwebapps / Myproject / WEB-INF / lib / 이것은 나를 위해 일했다.
jsp-api 2.0을에서 제거했습니다. .metadata / .plugins / org.eclipse.wst.server.core / tmp0 / wtpwebapps / Myproject / WEB-INF / lib / 이것은 나를 위해 일했다.
-
==============================
11.netbeans IDE 8.0.2에서 같은 오류가 발생했습니다. 내 부분은 발신 및 종료를 위해 8080으로 설정되었습니다. 나는 Tomcat 서버에 대해 발신을 8081로 변경했다. 그것은 효과가있다! 그런 다음 종료 포트 8005를 변경했습니다. 변경하려면 도구> 서버>
netbeans IDE 8.0.2에서 같은 오류가 발생했습니다. 내 부분은 발신 및 종료를 위해 8080으로 설정되었습니다. 나는 Tomcat 서버에 대해 발신을 8081로 변경했다. 그것은 효과가있다! 그런 다음 종료 포트 8005를 변경했습니다. 변경하려면 도구> 서버>
이제 내 Tomcat 서버가 작동합니다.
from https://stackoverflow.com/questions/3452403/unable-to-read-tld-meta-inf-c-tld by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 3.2 새로운 mvc 테스트를 가진 사용자 로그인 방법 (0) | 2019.02.06 |
---|---|
[SPRING] Hibernate 콜렉션은 어떤 세션과도 연관되지 않는다. (0) | 2019.02.06 |
[SPRING] 스프링 프레임 워크가 XML 기반 구성으로 어노테이션 기반 구성을 재정의 할 수 있습니까? (0) | 2019.02.06 |
[SPRING] HTTP 상태 405 - 요청 메소드 'POST'가 지원되지 않음 (스프링 MVC) (0) | 2019.02.06 |
[SPRING] RestTemplate PATCH 요청 (0) | 2019.02.06 |