Axis发布的web服务,在传输加密javaBean时出现异常,请高手解决,回者有分!

时间:2021-01-18 19:05:03
Axis发布的web服务,参数与返回类型都是javabean对象,对象的第个字段域都进行了加密,在传输不加密的对像时候正常,在传输加密的对象时候出现异常,以下异常信息:
java.lang.IllegalArgumentException: The char '0x6' in '·????????ú#:??,M????v7??)U????àJ$@??d??0H' is not a valid XML character.
at org.apache.axis.components.encoding.UTF8Encoder.writeEncoded(UTF8Encoder.java:81)
at org.apache.axis.encoding.SerializationContext.writeSafeString(SerializationContext.java:1222)
at org.apache.axis.encoding.ser.SimpleSerializer.serialize(SimpleSerializer.java:104)
at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1426)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:914)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:702)
at org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.java:230)
at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1426)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:914)
at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:989)
at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145)
at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:477)
at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)
at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530)
at org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:519)
at org.apache.axis.Message.getContentType(Message.java:475)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:343)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
at org.apache.axis.client.Call.invoke(Call.java:2748)
at org.apache.axis.client.Call.invoke(Call.java:2424)
at org.apache.axis.client.Call.invoke(Call.java:2347)
at org.apache.axis.client.Call.invoke(Call.java:1804)
at com.fsti.ws.test.client.CallWebService.queryBill(CallWebService.java:112)
at org.apache.jsp.handleframe_jsp._jspService(handleframe_jsp.java:129)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
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.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(Unknown Source)

4 个解决方案

#1


UTF8编码不允许出现汉字,你把信息加密后,有些字符变成中文的
你要改编码,后者使用base64转码

#2


谢谢,不是因为中文,是加密后有特殊字符,xml验证不能过,后来改base64了,能回就谢谢你

#3


请问楼主用axis开发的时候,用到数据库了吗?我最近遇到点问题:JDBC的返回数据集ResultSet怎么封装后传递?
我要用axis做一个web service查询系统(涉及数据库的访问),不知道怎么封装JDBC部分的东西。如果楼主能解答,希望给点指导,万分感谢!
可以加我QQ:231263787

#4


返回数据集ResultSet,你可以把里面的数据封装成javabean,然后再传递这个javabean就可以了

以前好象就有看过这方面的帖子,就是加密后,出现特殊字符,导致XML无法支持~~~搜索下看

#1


UTF8编码不允许出现汉字,你把信息加密后,有些字符变成中文的
你要改编码,后者使用base64转码

#2


谢谢,不是因为中文,是加密后有特殊字符,xml验证不能过,后来改base64了,能回就谢谢你

#3


请问楼主用axis开发的时候,用到数据库了吗?我最近遇到点问题:JDBC的返回数据集ResultSet怎么封装后传递?
我要用axis做一个web service查询系统(涉及数据库的访问),不知道怎么封装JDBC部分的东西。如果楼主能解答,希望给点指导,万分感谢!
可以加我QQ:231263787

#4


返回数据集ResultSet,你可以把里面的数据封装成javabean,然后再传递这个javabean就可以了

以前好象就有看过这方面的帖子,就是加密后,出现特殊字符,导致XML无法支持~~~搜索下看