我如何处理Org.Apache.Axiom.Om.Omexception:Com.Ctc.Wstx.Exc.Wstxunexpectedcharexception:非法字符((Ctrl-Char,Code 25))

时间:2014-10-18 11:59:38

标签: java xml xml-parsing

<pre lang="text">2014-10-17 12:30:47,830 INFO  [STDOUT] org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character ((CTRL-CHAR, code 25))
 at [row,col {unknown-source}]: [1,5090]
2014-10-17 12:30:47,830 INFO  [STDOUT]  at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:260)
2014-10-17 12:30:47,830 INFO  [STDOUT]  at org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling(OMElementImpl.java:337)
2014-10-17 12:30:47,831 INFO  [STDOUT]  at org.apache.axiom.om.impl.traverse.OMChildrenQNameIterator.findNextElementWithQName(OMChildrenQNameIterator.java:96)
2014-10-17 12:30:47,831 INFO  [STDOUT]  at org.apache.axiom.om.impl.traverse.OMChildrenQNameIterator.hasNext(OMChildrenQNameIterator.java:76)
2014-10-17 12:30:47,831 INFO  [STDOUT]  at org.apache.axiom.om.impl.llom.OMElementImpl.getFirstChildWithName(OMElementImpl.java:274)
2014-10-17 12:30:47,831 INFO  [STDOUT]  at rezg.email.services.controller.MailXmlResponseReader.getNeededOption(MailXmlResponseReader.java:149)
2014-10-17 12:30:47,831 INFO  [STDOUT]  at rezg.email.services.controller.MailTopicSetter.mailSubject(MailTopicSetter.java:57)
2014-10-17 12:30:47,831 INFO  [STDOUT]  at rezg.email.services.controller.MailServiceFlowController.sendEmails(MailServiceFlowController.java:76)
2014-10-17 12:30:47,831 INFO  [STDOUT]  at rezg.email.services.MailServiceBuilderAction.buildSendMail(MailServiceBuilderAction.java:34)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at rezg.email.services.MailServiceBuilderAction.executeTask(MailServiceBuilderAction.java:110)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at rezg.base.BaseAction.execute(BaseAction.java:20)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at clime.messadmin.filter.MessAdminFilter.doFilter(MessAdminFilter.java:105)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
2014-10-17 12:30:47,832 INFO  [STDOUT]  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at java.lang.Thread.run(Thread.java:662)
2014-10-17 12:30:47,833 INFO  [STDOUT] Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character ((CTRL-CHAR, code 25))
 at [row,col {unknown-source}]: [1,5090]
2014-10-17 12:30:47,833 INFO  [STDOUT]  at com.ctc.wstx.sr.StreamScanner.throwInvalidSpace(StreamScanner.java:650)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4666)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at com.ctc.wstx.sr.BasicStreamReader.readCoalescedText(BasicStreamReader.java:4124)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3699)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3647)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:809)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at javax.xml.stream.util.StreamReaderDelegate.getText(StreamReaderDelegate.java:173)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at org.apache.axiom.om.impl.builder.SafeXMLStreamReader.getText(SafeXMLStreamReader.java:101)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:276)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:246)
2014-10-17 12:30:47,833 INFO  [STDOUT]  at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:217)
2014-10-17 12:30:47,833 INFO  [STDOUT]  ... 38 more
2014-10-17 12:30:47,833 WARN  [rezg.email.services.controller.MailTopicSetter] [TRANS_ID: 71eadbe3dccc4f3f8377ab250b942b91] [CONTROLLER LOCATION: N/A] :: Mail Confirmation Status
</pre>

以下是已使用的代码。我正在尝试从XML中读取activityoverallbookingstatus tag

<pre lang="c#">mailConfirmationStatus = mailXmlResponseReader.getNeededOption("activityoverallbookingstatus",mailXml);
logger.warn("Mail Confirmation Status" +mailConfirmationStatus);


public String getNeededOption(String qName,StringBuffer xmlMail){
        String retunString = "" ;
        try{
            String responseXML = xmlMail.toString();
            XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(new StringBufferInputStream(responseXML));
            OMElement documentElement = new StAXOMBuilder(parser).getDocumentElement();
            OMElement returnSta = documentElement.getFirstChildWithName(new QName(qName));
            retunString = returnSta.getText();
        }catch(Exception e){
            e.printStackTrace();
        }
        return retunString;
}
</pre>

部分XML如下:

<pre lang="HTML">&lt;mail&gt;&lt;activities&gt;&lt;activitycommentcontract&gt;Remember that you must present your booking voucher to the representative/ tour guide/ driver, and please do not forget to bring your ID.Rates not applicable for Bab Al Shams desert resort and spa, Al Maha Desert resort&amp;amp; Hatta Fort hotelImportant Notice: A private car booking is required if travelling with children under 5 years oldPICK-UP POINT: From any hotels in Dubai, to be confirmed upon bookingCONTACT INFORMATION:Contact PhoneNo: +971 56 3402176(09:00hrs-18:00hrs)Contact Hour: 24 hoursEmergency Call: +971 551237477(Mr. Ahmed Hassan - Operations Manager) Office TEL:  +9714 3366643 - Ext 419/106/186  Important information:-Photography of military and government installations is prohibited.-It is recommended to ask before photographing local ladies-Guests need to carry original passport-Women up to 6 months pregnant are able to participate in the tour.Please reconfirm CRC the time and location for pick-up with 48/24 hours’ notice prior to the activity.&lt;/activitycommentcontract&gt;&lt;/activities&gt;&lt;activityoverallbookingstatus&gt;CONFIRMED&lt;/activityoverallbookingstatus&gt;&lt;/mail&gt;</pre>

1 个答案:

答案 0 :(得分:0)

如错误消息所示,您的文件中包含非法字符。找到并修复它。

相关问题