2012-05-21 6 views
0

XML 메시지를 소비하고 처리하는 데 mule을 사용하는 서버 측 웹 응용 프로그램 코드가 있습니다. 최근에 나는 새로운 바람둥이 판으로 옮겼다. 노새가 xml을 dom으로 변환하려고 시도하는 동안 다음 오류가 표시됩니다.노새 용 DOM 파서를 명시 적으로 지정하십시오.

Exception Stack trace: 

1. org.apache.xerces.parsers.XIncludeAwareParserConfiguration은 org.apache.xerces.xni.parser.XMLParserConfiguration (java.lang.ClassCastException가) org.apache.xerces.parsers.DOMParser 캐스트 할 수없는 : -1 (null) 2. org.apache.xerces.parsers.XIncludeAwareParserConfiguration을 org.apache.xerces.xni.parser.XMLParserConfiguration (java.lang.ClassCastException)에 캐스트 할 수 없습니다 (org.mule.api.transformer.TransformerException).) org.mule.module.xml.transformer.XmlToDomDocument : 64 (http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/transformer/TransformerException.html)

루트 예외 스택 추적 : java.lang.ClassCastException : org.apache.xerces.parsers.XIncludeAwareParserConfiguration을 org.apache.xerces.xni.parser.XMLParserConfiguration에 캐스팅 할 수 없습니다. at org.apache.xerces.parsers.DOMParser. (알 수없는 소스) org.apache.xerces.parsers.DOMParser에서 . (알 수없는 소스) org.apache.xerces.jaxp.DocumentBuilderImpl에서 . (알 수없는 소스) 알 org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder에서 (출처) com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.createDocument (SAX2DOM.java:324) com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM. (SAX2DOM.java:84) com.sun.org.apache.xalan.internal.xsltc.runtime.output.TransletOutputHandlerFactory.getSerializationHandler (TransletOutputHandlerFacto com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler (TransformerImpl.java:392) (com.sun.org.apache.xalan.internal.xsltc). trax.TransformerImpl.transform (TransformerImpl.java:298) 에서 org.mule.module.xml.transformer.XmlToDomDocument.doTransform (XmlToDomDocument.java:58) at org.mule.transformer.AbstractTransformer.transform (AbstractTransformer.java : 254)

내 WEB-INF/lib 디렉터에서 xerces 2.9.1 때문에이 문제가 발생했다고 생각했습니다. 난 항아리를 제거하고 모두 괜찮 았어. 문제는 classpath에서 xerces의 vesion을 필요로하는 lib에 다른 legacy third pary jar가 있기 때문에 저의 lib에있는 jar를 찾았습니다.

  1. 다른 DOM 파서를 지정하고 클래스 패스에서 노새를 선택하는 방법이 있습니까?
  2. xerces java doc을 검사 한 결과, XIncludeAwareParserConfiguration이 XMLParserConfiguration을 구현합니다. 궁금한 점이 클래스 캐스팅을 던지는 이유는 무엇입니까?

Thnks

답변

0

뮬의 AbstractXmlTransformer 내가 당신의 목표를 달성하는 데 도움한다고 생각 setXMLInputFactory 등 여러 구성 옵션을 제공합니다.

문제는 이러한 구성 옵션이 XML 수준에서 제공되지 않기 때문에 다른 속성을 설정하기 위해 XmlToDomDocument을 사용자 지정 변압기로 선언해야한다는 것입니다.

관련 문제