2013-03-22 12 views
1

MyFaces를 사용하여 웹 응용 프로그램을 만드는 중 일부 시점에서 내 faces-config.xml과 web.xml이 시작되었지만 변경을 한 것 같습니다. 나는 두 가지 다른 항아리와 두 가지 구성으로 실험 해 왔지만 올바르게 설치하는 데 아무 것도 얻을 수 없습니다.web.xml/faces-config.xml 구성 문제

의 web.xml : 얼굴-config.xml 파일의

<?xml version="1.0" encoding="UTF-8"> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

소개 :

내가 (솔루션 제외) 모든 노력을 것 같은 느낌이 있지만, 여기에 코드의 한 예이다
<?xml version="1.0" encoding="UTF-8"?> 
<faces-config 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" 
version="2.0"> 

나는이 오류 받고 있어요 :

SEVERE [org.apache.commons.digester.Digester] (MSC service thread 1-2) Parse Error at line 2 column 14: 
Document is invalid: no grammar found.: org.xml.sax.SAXParseException: Document is invalid: no grammar found. 
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:196) 
at org.apache.xerces.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:132) 
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:390) 
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:322) 
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:281) 
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:136) 
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:733) 
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1754) 
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324) 
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:845) 
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768) 
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108) 
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1196) 
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:555) 
at org.apache.commons.digester.Digester.parse(Digester.java:1745) [commons-digester-1.8.jar:] 
at org.apache.myfaces.config.impl.digester.DigesterFacesConfigUnmarshallerImpl.getFacesConfig(DigesterFacesConfigUnmarshallerImpl.java:197) [myfaces-impl-1.1.8.jar:] 

도 :

SEVERE [org.apache.commons.digester.Digester] (MSC service thread 1-2) Parse Error at line 2 column 14: 
Document root element "faces-config", must match DOCTYPE root "null".: org.xml.sax.SAXParseException: Document root element "faces-config", must match DOCTYPE root "null". 
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:196) 

내가 왜 작동하지 않는 이상 미친려고하고있다. 왜 내가 그것을 놓치고 있는지 분명합니까? 또는이 파일들에 문제가 없으므로 항아리를 교체해야합니까? JBOSS 7을 배포 중입니다. 감사합니다! 감사합니다.

답변

1

저는 MyFaces에서 전혀 경험이 없지만 온라인에서 보았던 다른 게시물 중 일부를 보면서 (그리고 초기 XML 시작 부분에 공백이 있기 때문에) 문제를 일으킬 수있는 숨겨진 문자 또는 XML 문서의 추가 공백이 없습니다.

또한 faces-config.xml의 루트 요소에있는 값이 올바른지 확인할 수 있습니다. 특히 xsi : schemaLocation 속성의 값을 확인합니다. 특정 XML 파서의 작동 방식에 대해 잘 알고있는 것은 아니지만 제공된 URL을 사용하여 스키마의 유효성을 검사하고 실패한 경우 예외가 있다고 판단 할 수 있습니다. 유효한 마크 업이 아닌 것으로 보이는 두 개의 URL이있는 것으로 보입니다. 실제로 두 번째 URL은 유효한 XSD 정의 파일로 해석됩니다. 하나의 URL로 제한하고 변경 사항이 있는지 확인하십시오.

희망 하시겠습니까?

EDIT : 나는 잘못된 정보 일 수도있다. xsi : schemaLocation 요소에는 공백으로 구분 된 두 개의 값이있을 수 있습니다. 두 번째는 유효한 스키마 파일이어야합니다. 나는 그들이 실제로 적절한 간격을 유지하고 있는지 확인했다. 당신의 대답처럼 보일지 모르지만 체크할만한 가치가 있습니다.

+1

고마워요! 귀하의 게시물에서 나는이 오류를 일으키는 3 가지 오류를 발견했습니다. 다른 사람은 xml 파일에 이상한 문자/공백이 없는지 확인한 다음 항아리가 충돌하지 않는지 확인하십시오 (배치가 다중 JSF 구현을 처리하는 방법을 알 수 없음). 그런 다음 lib 폴더가 있는지 확인하십시오. 귀하의 WEB-inf 디렉토리. 응용 프로그램 팩토리를 등록하기 위해 수동으로 일부 항아리를로드해야했습니다. – Glenninator