2013-01-07 2 views
2

Tomcat 7.0.27을 시작하지 못했습니다. 이것이 내 개발 서버이기 때문에 이것은 ServerFault 질문이 아닙니다. IntelliJ IDEA를 사용하고 있으며 응용 프로그램에 필터를 추가하기 전에 응용 프로그램에서 오류가 발생하지 않았습니다. IDEA가 컴파일, 패키징 및 개발을 방해하지 않는 문제없이 실행하는 프로덕션 서버에서이 필터를 성공적으로 사용하고 있기 때문에이 필터가 문제의 원인이 아닙니다. 그런 다음 내 문제는 무엇입니까?응용 프로그램에서 UTF8 지원을 추가하고 필요한 JVM 옵션을 설정 한 후 Tomcat (개발)을 시작하지 못했습니다.

Tomcat에서 버블 링 된 사소한 오류를 발견했습니다. 이 로그 파일에 로그인 만 읽어하지 않습니다

나는 특히 바람둥이 catalina.bat UTF-8로 실행하는 JVM을 reqquest하도록 지시를하는 VM에 대한 몇 가지 PARAMS를 추가 할 필요가 온라인보고에서 의심
Unable to use direct char[] access of java.lang.String 
java.lang.NoSuchFieldException: count 
    at java.lang.Class.getDeclaredField(Class.java:1899) 
    at org.apache.myfaces.shared.util.StringCharArrayAccessor.<clinit>(StringCharArrayAccessor.java:63) 
    at org.apache.myfaces.shared.util.StreamCharBuffer.readAsString(StreamCharBuffer.java:605) 
    at org.apache.myfaces.shared.util.StreamCharBuffer.toString(StreamCharBuffer.java:631) 
    at org.apache.myfaces.shared.renderkit.html.HtmlResponseWriterImpl.writeScriptContent(HtmlResponseWriterImpl.java:484) 
    at org.apache.myfaces.shared.renderkit.html.HtmlResponseWriterImpl.endElement(HtmlResponseWriterImpl.java:416) 
    at org.apache.myfaces.view.facelets.compiler.EndElementInstruction.write(EndElementInstruction.java:38) 
    at org.apache.myfaces.view.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:46) 
    at org.apache.myfaces.view.facelets.compiler.UILeaf.encodeAll(UILeaf.java:505) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:764) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:764) 
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1900) 
    at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285) 
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:115) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199) 
    at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:112) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at com.buhaugane.web.filters.CharsFilter.doFilter(CharsFilter.java:38) 
    at ... 

(필자는 Windows 8을 사용하고 있습니다.) 필터를 사용할 수 있습니다.이 자극에 대한 유일한 원인으로 모든 것을 고치는 필터를 사용합니다. 필터가 수행하는 유일한 작업은로드 될 때 UTF-8 값으로 HTTP 요청을 수정하는 것입니다 컨테이너에 의해 초기화 : request.setCharacterEncoding(encoding); 그리고 Tomcat이 시작하지 않을 파일에 다음을 추가하려고 할 때, 내가 준 변수에 유효하지 않은 값이 들어 있다는 불평을했습니다. 그것은 정확하게 그대로 쓰여집니다. 개발 환경이 제작을 모방하도록이 문제를 해결하는 데 도움을 드리고 싶습니다. 모든 도움을 주시면 감사하겠습니다. 한마디로

set JAVA_OPTS=%JAVA_OPTS%^
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager^
-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties^
-Xms128m -Xmx256m^
=-Dfile.encoding=UTF-8 

, 나는 미래의 문제를 일으킬 수있는 모든 오류를 제거하고 싶습니다 내가 Tomcat을 말하는 것은 나에게 도움이 될 것입니다 UTF-8 JVM을 사용할 수 있다고 생각 :

은 내가 사용하는 변수가 구성됩니다. 내가 게시 한 값에 눈에 보이는 오류가 있습니까?

+0

마지막 행에 _equals_ 기호 (=)가 무엇입니까? – informatik01

+1

@ informatik01 감사합니다. – thejartender

답변

2

문제는 에서 MyFaces 버전입니다. 나는 같은 문제가 있었고 최신 myfaces 버전으로 업그레이드하여 문제를 해결할 수있었습니다.

  • 에서 MyFaces-api.jar을 (버전 2.1.10로, 내가 전에 2.1.6을 사용했다)
  • 에서 MyFaces-impl.jar (버전 2.1.10에 : 특히 나는 다음과 같은 두 개의 jar 파일 업데이트 내가) 전에 2.1.6을 사용했다

는 오류가 여기에 무슨 일이 생긴 : 이것은 자바 6와 함께 잘 작동하지만가되었습니다 org.apache.myfaces.shared.util.StringCharArrayAccessor.<clinit>(StringCharArrayAccessor.java:63)

되지 자바 7을 나는 count 필드가 제거되었습니다 같아요 Java 7 구현. Fortunatly myfaces 팀은 이미 그 문제를 해결했습니다. jar 파일을 업데이트하십시오 (위 참조).

2

당신이 오류가 단지 디버그 정보입니다 : https://github.com/grails/grails-core/blob/master/grails-web/src/main/groovy/org/codehaus/groovy/grails/web/util/StringCharArrayAccessor.java

코드에 대해서는, 그것은 String 클래스가 포장되어있는 경우 감지하고 몇 가지 추가 방법을 시도합니다. 그렇다면 grails는 최적화 된 버전을 사용하고, 그렇지 않으면 fallback을 사용합니다.

이 오류는 무시해도됩니다.

HIH

+0

감사합니다. 또한 jk7이 Tomcat과 관련된 jk7 문제 일 수 있다고 판단했지만이 포럼은 Ubuntu였으며 우분투 패키지 JDK와 관련이있을 수 있으므로 여기에 게시하지 않았습니다. – thejartender