[ https://issues.apache.org/jira/browse/CXF-2215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
dingweilong updated CXF-2215: ----------------------------- Description: I have use cxf 2.2 to publish a web service in tomcat 6, the only operation in which is public java.lang.String greetMe( String name); when invoke with a parameter in Chinese value, i couldn't get my result. I use log interceptor to get the log below, you see the encoding and the charset is not consistent I track the source code, and see the error when unmarshall invoked. you can see the inbound message is parsed allright, but the outbound message is not, error occurs. I have test there're no problem when i use English parameter. who can tell me the reason and fix the problem, thanks! Inbound Message ---------------------------- Encoding: GB2312 Content-Type: text/xml; charset=UTF-8 Headers: {cache-control=[no-cache], content-type=[text/xml; charset=UTF-8], connection=[keep-alive], host=[10.61.0.90:8080], content-length=[182], SOAPAction=[""], user-agent=[Apache CXF 2.2], Accept=[*/*], pragma=[no-cache]} Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ envelope/"> <soap:Body> <ns2:greetMe xmlns:ns2="http://cxf/"> <arg0>测试 </ arg0> </ns2:greetMe> </soap:Body> </soap:Envelope> Outbound Message --------------------------- Encoding: GB2312 Content-Type: text/xml Headers: {} Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Client </ faultcode> <faultstring>Unmarshalling Error: Unexpected close tag </ ns2:greetMe>; expected </arg0>.
 at [row,col {unknown-source}]: [1,148] </faultstring> </soap:Fault> </ soap:Body> </soap:Envelope> and the exception is below: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Unmarshalling Error: Unexpected close tag </ns2:greetMe>; expected </arg0>. at [row,col {unknown-source}]: [1,148] at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:622) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:527) at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java: 108) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage (DocLiteralInInterceptor.java:102) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java:236) at org.apache.cxf.transport.ChainInitiationObserver.onMessage (ChainInitiationObserver.java:89) at org.apache.cxf.transport.servlet.ServletDestination.invoke (ServletDestination.java:99) at org.apache.cxf.transport.servlet.ServletController.invokeDestination (ServletController.java:337) at org.apache.cxf.transport.servlet.ServletController.invoke (ServletController.java:182) at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke (AbstractCXFServlet.java:163) at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost (AbstractCXFServlet.java:141) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter (FilterDispatcher.java:413) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: 665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:685) at java.lang.Thread.run(Thread.java:619) Caused by: javax.xml.bind.UnmarshalException - with linked exception: [com.ctc.wstx.exc.WstxParsingException: Unexpected close tag </ ns2:greetMe>; expected </arg0>. at [row,col {unknown-source}]: [1,148]] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException (UnmarshallerImpl.java:426) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0 (UnmarshallerImpl.java:362) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal (UnmarshallerImpl.java:339) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:607) ... 29 more Caused by: com.ctc.wstx.exc.WstxParsingException: Unexpected close tag </ns2:greetMe>; expected </arg0>. at [row,col {unknown-source}]: [1,148] at com.ctc.wstx.sr.StreamScanner.constructWfcException (StreamScanner.java:630) at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java: 461) at com.ctc.wstx.sr.BasicStreamReader.reportWrongEndElem (BasicStreamReader.java:3256) at com.ctc.wstx.sr.BasicStreamReader.readEndElem (BasicStreamReader.java:3198) at com.ctc.wstx.sr.BasicStreamReader.nextFromTree (BasicStreamReader.java:2830) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java: 1019) at org.apache.cxf.staxutils.DepthXMLStreamReader.next (DepthXMLStreamReader.java:220) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge (StAXStreamConnector.java:225) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0 (UnmarshallerImpl.java:360) ... 31 more was: I have use cxf 2.2 to publish a web service in tomcat 6, the only operation in which is public java.lang.String greetMe( String name); when invoke with a parameter in Chinese value, i couldn't get my result. I use log interceptor to get the log below, you see the encoding and the charset is not consistent who can tell me the reason and fix the problem, thanks! Inbound Message ---------------------------- Encoding: GB2312 Content-Type: text/xml; charset=UTF-8 Headers: {cache-control=[no-cache], content-type=[text/xml; charset=UTF-8], connection=[keep-alive], host=[10.61.0.90:8080], content-length=[182], SOAPAction=[""], user-agent=[Apache CXF 2.2], Accept=[*/*], pragma=[no-cache]} Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ envelope/"> <soap:Body> <ns2:greetMe xmlns:ns2="http://cxf/"> <arg0>测试 </ arg0> </ns2:greetMe> </soap:Body> </soap:Envelope> Outbound Message --------------------------- Encoding: GB2312 Content-Type: text/xml Headers: {} Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Client </ faultcode> <faultstring>Unmarshalling Error: Unexpected close tag </ ns2:greetMe>; expected </arg0>.
 at [row,col {unknown-source}]: [1,148] </faultstring> </soap:Fault> </ soap:Body> </soap:Envelope> and the exception is below: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Unmarshalling Error: Unexpected close tag </ns2:greetMe>; expected </arg0>. at [row,col {unknown-source}]: [1,148] at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:622) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:527) at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java: 108) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage (DocLiteralInInterceptor.java:102) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java:236) at org.apache.cxf.transport.ChainInitiationObserver.onMessage (ChainInitiationObserver.java:89) at org.apache.cxf.transport.servlet.ServletDestination.invoke (ServletDestination.java:99) at org.apache.cxf.transport.servlet.ServletController.invokeDestination (ServletController.java:337) at org.apache.cxf.transport.servlet.ServletController.invoke (ServletController.java:182) at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke (AbstractCXFServlet.java:163) at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost (AbstractCXFServlet.java:141) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter (FilterDispatcher.java:413) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: 665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:685) at java.lang.Thread.run(Thread.java:619) Caused by: javax.xml.bind.UnmarshalException - with linked exception: [com.ctc.wstx.exc.WstxParsingException: Unexpected close tag </ ns2:greetMe>; expected </arg0>. at [row,col {unknown-source}]: [1,148]] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException (UnmarshallerImpl.java:426) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0 (UnmarshallerImpl.java:362) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal (UnmarshallerImpl.java:339) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:607) ... 29 more Caused by: com.ctc.wstx.exc.WstxParsingException: Unexpected close tag </ns2:greetMe>; expected </arg0>. at [row,col {unknown-source}]: [1,148] at com.ctc.wstx.sr.StreamScanner.constructWfcException (StreamScanner.java:630) at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java: 461) at com.ctc.wstx.sr.BasicStreamReader.reportWrongEndElem (BasicStreamReader.java:3256) at com.ctc.wstx.sr.BasicStreamReader.readEndElem (BasicStreamReader.java:3198) at com.ctc.wstx.sr.BasicStreamReader.nextFromTree (BasicStreamReader.java:2830) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java: 1019) at org.apache.cxf.staxutils.DepthXMLStreamReader.next (DepthXMLStreamReader.java:220) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge (StAXStreamConnector.java:225) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0 (UnmarshallerImpl.java:360) ... 31 more Summary: can't use non-English character parameter, soap encoding are not consistent (was: can't use non-English character parameter ) > can't use non-English character parameter, soap encoding are not consistent > ---------------------------------------------------------------------------- > > Key: CXF-2215 > URL: https://issues.apache.org/jira/browse/CXF-2215 > Project: CXF > Issue Type: Bug > Affects Versions: 2.2 > Environment: windows xp, tomcat 6.0.18 > Reporter: dingweilong > Priority: Critical > > I have use cxf 2.2 to publish a web service in tomcat 6, the only operation > in which is > public java.lang.String greetMe( String name); > when invoke with a parameter in Chinese value, i couldn't get my result. > I use log interceptor to get the log below, you see the encoding and the > charset is not consistent > I track the source code, and see the error when unmarshall invoked. > you can see the inbound message is parsed allright, but the outbound message > is not, error occurs. > I have test there're no problem when i use English parameter. > who can tell me the reason and fix the problem, thanks! > Inbound Message > ---------------------------- > Encoding: GB2312 > Content-Type: text/xml; charset=UTF-8 > Headers: {cache-control=[no-cache], content-type=[text/xml; > charset=UTF-8], connection=[keep-alive], host=[10.61.0.90:8080], > content-length=[182], SOAPAction=[""], user-agent=[Apache CXF 2.2], > Accept=[*/*], pragma=[no-cache]} > Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ > envelope/"> <soap:Body> <ns2:greetMe xmlns:ns2="http://cxf/"> <arg0>测试 </ > arg0> </ns2:greetMe> </soap:Body> </soap:Envelope> > Outbound Message > --------------------------- > Encoding: GB2312 > Content-Type: text/xml > Headers: {} > Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ > envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Client </ > faultcode> <faultstring>Unmarshalling Error: Unexpected close tag </ > ns2:greetMe>; expected </arg0>.
 > at [row,col {unknown-source}]: [1,148] </faultstring> </soap:Fault> </ > soap:Body> </soap:Envelope> > and the exception is below: > Interceptor has thrown exception, unwinding now > org.apache.cxf.interceptor.Fault: Unmarshalling Error: Unexpected > close tag </ns2:greetMe>; expected </arg0>. > at [row,col {unknown-source}]: [1,148] > at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall > (JAXBEncoderDecoder.java:622) > at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall > (JAXBEncoderDecoder.java:527) > at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java: > 108) > at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage > (DocLiteralInInterceptor.java:102) > at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept > (PhaseInterceptorChain.java:236) > at org.apache.cxf.transport.ChainInitiationObserver.onMessage > (ChainInitiationObserver.java:89) > at org.apache.cxf.transport.servlet.ServletDestination.invoke > (ServletDestination.java:99) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination > (ServletController.java:337) > at org.apache.cxf.transport.servlet.ServletController.invoke > (ServletController.java:182) > at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke > (AbstractCXFServlet.java:163) > at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost > (AbstractCXFServlet.java:141) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter > (ApplicationFilterChain.java:269) > at org.apache.catalina.core.ApplicationFilterChain.doFilter > (ApplicationFilterChain.java:188) > at org.apache.struts2.dispatcher.FilterDispatcher.doFilter > (FilterDispatcher.java:413) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter > (ApplicationFilterChain.java:215) > at org.apache.catalina.core.ApplicationFilterChain.doFilter > (ApplicationFilterChain.java:188) > at org.apache.catalina.core.StandardWrapperValve.invoke > (StandardWrapperValve.java:210) > at org.apache.catalina.core.StandardContextValve.invoke > (StandardContextValve.java:174) > at org.apache.catalina.core.StandardHostValve.invoke > (StandardHostValve.java:127) > at org.apache.catalina.valves.ErrorReportValve.invoke > (ErrorReportValve.java:117) > at org.apache.catalina.core.StandardEngineValve.invoke > (StandardEngineValve.java:108) > at org.apache.catalina.connector.CoyoteAdapter.service > (CoyoteAdapter.java:151) > at org.apache.coyote.http11.Http11Processor.process > (Http11Processor.java:870) > at org.apache.coyote.http11.Http11BaseProtocol > $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: > 665) > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket > (PoolTcpEndpoint.java:528) > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt > (LeaderFollowerWorkerThread.java:81) > at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run > (ThreadPool.java:685) > at java.lang.Thread.run(Thread.java:619) > Caused by: javax.xml.bind.UnmarshalException > - with linked exception: > [com.ctc.wstx.exc.WstxParsingException: Unexpected close tag </ > ns2:greetMe>; expected </arg0>. > at [row,col {unknown-source}]: [1,148]] > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException > > (UnmarshallerImpl.java:426) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0 > (UnmarshallerImpl.java:362) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal > (UnmarshallerImpl.java:339) > at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall > (JAXBEncoderDecoder.java:607) > ... 29 more > Caused by: com.ctc.wstx.exc.WstxParsingException: Unexpected close tag > </ns2:greetMe>; expected </arg0>. > at [row,col {unknown-source}]: [1,148] > at com.ctc.wstx.sr.StreamScanner.constructWfcException > (StreamScanner.java:630) > at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java: > 461) > at com.ctc.wstx.sr.BasicStreamReader.reportWrongEndElem > (BasicStreamReader.java:3256) > at com.ctc.wstx.sr.BasicStreamReader.readEndElem > (BasicStreamReader.java:3198) > at com.ctc.wstx.sr.BasicStreamReader.nextFromTree > (BasicStreamReader.java:2830) > at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java: > 1019) > at org.apache.cxf.staxutils.DepthXMLStreamReader.next > (DepthXMLStreamReader.java:220) > at > com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge > (StAXStreamConnector.java:225) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0 > (UnmarshallerImpl.java:360) > ... 31 more -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.