2010-07-09 6 views
3

webapp에서 사용자 정의 taglib를 사용하려고하면 OS X (또는 Windows), Eclipse 및 Run Jetty Run에서 작동하지 않습니다. 내가 WAR 파일을 아파치 - 톰캣 - 6.0.20을 실행하는 내 리눅스 서버에서 실행할 때 아무런 문제가 없다. 둘 다 환경에서 문제없이 타사 사용자 정의 taglibs를 사용하고 있습니다.커스텀 taglibs가 "PWC6033 : JSP 용 클래스를 컴파일 할 수 없습니다"

org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP 

PWC6197: An error occurred at line: 6 in the jsp file: /temp.jsp 
PWC6199: Generated servlet error: 
com.test cannot be resolved to a type 
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:107) 
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:280) 
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:350) 
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:411) 
... 

는 사용자 정의 태그 라이브러리의 TLD는

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE taglib PUBLIC 
"-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" 
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> 
<taglib> 
<tlib-version>1.0</tlib-version> 
<jsp-version>2.0</jsp-version> 
<short-name>test</short-name> 
<uri>http://test.com/test.tld</uri> 
<description>Test</description> 

<tag> 
    <name>custom</name> 
    <tag-class>com.test.CustomTag</tag-class> 
    <body-content>empty</body-content> 
    <description>Custom tag</description> 
</tag> 
</taglib> 

그리고 태그 핸들러

package com.test; 

import javax.servlet.jsp.tagext.TagSupport; 

public class CustomTag extends TagSupport { 

private static final long serialVersionUID = 1L; 

} 

그리고 마침내 temp.jsp

<%@ taglib uri="http://test.com/test.tld" prefix="test" %> 
Hi 
<test:custom/> 

내가 생각하는 내 태그 라이브러리 정의/구성과 같은 th 이후 정확하다. 바람둥이에 전개 될 때 모든 것이 작동하지만, 나는 하루 종일이 일을 부두에서 쓸모 없게하려고 노력했다.

+0

이제 Windows에서 (기본 JRE 대신) 1.6 JDK를 사용하여 run-jetty-run에서 응용 프로그램을 실행 해 보았습니다. . – Tyler

답변

1

SOOOOOOOOOOO 성가신 !!!! 나는 누군가가 이것을 발견하고 그 해결책을 찾기 위해 노력하는 데 낭비하는 것을 항상 구할 수 있기를 하나님 께 간절히 바랍니다. 이것이 제티의 문제라고 생각합니다.

또한 com 패키지에는 Test 클래스가 있습니다. 그래서 어떤 이유로 든 부두가 com.test.CustomTag를 찾고 내부 클래스를 찾을 것입니다. 어쨌든 CustomTag를 다른 패키지로 옮기거나 com.Test를 이동하거나 이름을 바꾸면 문제가 해결됩니다.

0

다소 동일한 문제가 있습니다. 부두가 있지만 맞춤 tagfile (taglib 없음)

나는 타일러 (Tyler)의 게시물 (Jul 10 '10 at 0:45) 때문에 여기 포기합니다. 부두 군중에게 내 사건을 진술 할 수도 있습니다. 사용자 정의 태그가 태그 파일이고 패키지를 선언하지 않기 때문에 다른 사용자 정의 태그를 다른 패키지로 이동할 수 없습니다.

Eclipse에서는 제대로 작동합니다. 모든 Junit 테스트는 녹색으로 실행됩니다. 'mvn test'는 PWC6033에서는 실패하지만 더 자세한 정보는 없습니다. 방금 서버에 배포 할 때 분명히 올바르게 실행되는 태그 파일을 추측 할 수있었습니다.

임포트가 jetty/maven에 의해 올바르게 해결되지 않으면 버그라고 생각합니다. 완성도를 들어

, 여기 에서 내 tagfile입니다 /WEB-INF/tags/ognl.tag WebUtils는 속성 값 일부를 인쇄하지 다른 매개 변수를 가져 오기 위해 HttpServletRequest의 소요

<%@tag import="de.mypackage.WebUtils" 
%><%@tag body-content="empty" 
%><%@attribute name="value" required="true" 
%><%=WebUtils.ognl(request, value)%> 

표준 밖으로 물건.

1

해결책을 얻었습니다. 비록 내가 컴파일 할 때 내 일식은 오류를 나타내지는 않았지만. Jetty가 실행될 때, 내가 추가 한 새로운 클래스 속성을 찾지 못했습니다. 메이븐이 아직 그것을 생성하지 않았기 때문에.

나는이 두 명령을 실행했고 이후에는 문제가 없었습니다. 1. mvn clean 2. mvn install -DskipTests

관련 문제