关于使用CXF出现编码 GBK 的不可映射字符问题解决
来源:互联网 发布:node.js 实战 第二版 编辑:程序博客网 时间:2024/05/20 21:20
这是Web Service服务端的接口
这是接口的实现
这是客户端的调用
但是在客户端调用会有异常
2015-2-1 18:43:06 org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames
信息: Created classes: org.my.mycxf.ObjectFactory, org.my.mycxf.SayHello, org.my.mycxf.SayHelloResponse
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:10: 警告:编码 GBK 的不可映射字符
* <p>SayHello complex type鐨?Java 绫汇?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:10: 警告:编码 GBK 的不可映射字符
* <p>SayHello complex type鐨?Java 绫汇?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:12: 警告:编码 GBK 的不可映射字符
* <p>浠ヤ笅妯″紡鐗囨鎸囧畾鍖呭惈鍦ㄦ绫讳腑鐨勯鏈熷唴瀹广?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:43: 警告:编码 GBK 的不可映射字符
* 鑾峰彇name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:43: 警告:编码 GBK 的不可映射字符
* 鑾峰彇name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:43: 警告:编码 GBK 的不可映射字符
* 鑾峰彇name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:55: 警告:编码 GBK 的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:55: 警告:编码 GBK 的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:55: 警告:编码 GBK 的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:67: 警告:编码 GBK 的不可映射字符
* 鑾峰彇address灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:67: 警告:编码 GBK 的不可映射字符
* 鑾峰彇address灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:67: 警告:编码 GBK 的不可映射字符
* 鑾峰彇address灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:79: 警告:编码 GBK 的不可映射字符
* 璁剧疆address灞炴?鐨勫?銆?
^
org.apache.cxf.binding.soap.SoapFault: Cannot create a secure XMLInputFactory
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:849)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1318)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:355)
package org.my.mycxf; import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService; /** * CXF Web Service的接口 * * @author CJY * */// targetNamespace默认是报名的倒写http://mycxf.my.org/@WebServicepublic interface HelloWorld { @WebMethod(operationName = "SayHello") @WebResult(name="word") public String sayHello(@WebParam(name = "name") String name, @WebParam(name = "address") String address, @WebParam(name = "email") String email);}
这是接口的实现
package org.my.mycxf; import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService; /** * HelloWorld的实现类 * @author CJY * */@WebService(endpointInterface="org.my.mycxf.HelloWorld")public class HelloWorldImpl implements HelloWorld{ @WebMethod(operationName = "SayHello") @WebResult(name="word") @Override public String sayHello(@WebParam(name = "name") String name, @WebParam(name = "address") String address, @WebParam(name = "email") String email) { // TODO Auto-generated method stub return "你好:"+name+";你的地址是:"+address+";邮箱是:"+email; } }
这是客户端的调用
但是在客户端调用会有异常
2015-2-1 18:43:06 org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames
信息: Created classes: org.my.mycxf.ObjectFactory, org.my.mycxf.SayHello, org.my.mycxf.SayHelloResponse
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:10: 警告:编码 GBK 的不可映射字符
* <p>SayHello complex type鐨?Java 绫汇?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:10: 警告:编码 GBK 的不可映射字符
* <p>SayHello complex type鐨?Java 绫汇?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:12: 警告:编码 GBK 的不可映射字符
* <p>浠ヤ笅妯″紡鐗囨鎸囧畾鍖呭惈鍦ㄦ绫讳腑鐨勯鏈熷唴瀹广?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:43: 警告:编码 GBK 的不可映射字符
* 鑾峰彇name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:43: 警告:编码 GBK 的不可映射字符
* 鑾峰彇name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:43: 警告:编码 GBK 的不可映射字符
* 鑾峰彇name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:55: 警告:编码 GBK 的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:55: 警告:编码 GBK 的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:55: 警告:编码 GBK 的不可映射字符
* 璁剧疆name灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:67: 警告:编码 GBK 的不可映射字符
* 鑾峰彇address灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:67: 警告:编码 GBK 的不可映射字符
* 鑾峰彇address灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:67: 警告:编码 GBK 的不可映射字符
* 鑾峰彇address灞炴?鐨勫?銆?
^
C:\Users\ADMINI~1\AppData\Local\Temp\org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory@523be-1422787386518-src\org\my\mycxf\SayHello.java:79: 警告:编码 GBK 的不可映射字符
* 璁剧疆address灞炴?鐨勫?銆?
^
org.apache.cxf.binding.soap.SoapFault: Cannot create a secure XMLInputFactory
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:849)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1318)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:355)
at org.my.mycxf.Test.main(Test.java:15)
--------------------------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------------
如下是解决方法:
目前笔记本上的项目问题已经解决
1.第一步将服务端web项目的默认编码设置成UTF-8
右键项目名称properties>resource>text file encoding>other>UTF-8
2.在web.xml中加入:
<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
3.在客户端项目中
右键项目名称properties>resource>text file encoding>other>UTF-8
然后项目重新编译一下问题就解决了
另外请确定服务端的jar包是否齐全如果不齐会报错:Cannot create a secure XMLInputFactory
阅读全文
0 0
- 关于使用CXF出现编码 GBK 的不可映射字符问题解决
- CXF出现编码 GBK 的不可映射字符问题解决
- ANT出现“警告: 编码 GBK 的不可映射字符”解决方法
- javadoc生成出现错误:编码 GBK 的不可映射字符;
- maven打包时出现编码GBK的不可映射字符
- maven编译出现编码 gbk 的不可映射字符错误
- javadoc生成出现错误“编码 GBK 的不可映射字符”
- ANT出现“警告: 编码 GBK 的不可映射字符”解决方法
- javadoc生成出现错误【编码 GBK 的不可映射字符】
- javadoc 出现:错误: 编码GBK的不可映射字符
- javadoc生成出现错误“编码 GBK 的不可映射字符
- javadoc生成出现错误“编码 GBK 的不可映射字符
- javadoc生成出现错误“编码 GBK 的不可映射字符”
- ANT出现“警告: 编码 GBK 的不可映射字符”解决方法
- mvn package出现“编码GBK的不可映射字符”
- JAVA中出现错误:编码GBK的不可映射字符
- javac编译出现”编码 GBK 的不可映射字符“错误
- maven打包时出现编码GBK的不可映射字符
- 京东深圳手Q微信事业部测试工程师面试总结
- 为什么要学数学?因为这是一场战略性的投资
- inner join和outer join的区别
- 安卓使用TCP/Ip协议传输数据
- [C++类和对象的简单操作]面向对象程序设计上机练习六(类和对象)
- 关于使用CXF出现编码 GBK 的不可映射字符问题解决
- python分别用while和for于vcf格式提取复等位基因的snp(并计算分别条数)
- markdown之学习路线
- java拦截器与过滤器的区别
- Resharper 如何把类里的类移动到其他文件
- 获取刚刚 插入的自增主键
- JEECG参与2017年度最受欢迎开源项目投票,请投上宝贵一票
- Kubernetes对象之Pod详解(附安装部署方法)
- Linux运维人员最常用 150 个命令汇总