这两天在项目上集成CXF进行异构系统间的通讯,在Tomcat上集成开发,用cxf生成客户端代码,运行都没有问题,但是迁移到WAS7上,就出问题了
Caused by: javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error: unexpected element (uri:"", local:"colNum"). Expected elements a re <{}sql> at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.createSystemException(MethodMarshallerUtils.java:1310) at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.demarshalFaultResponse(MethodMarshallerUtils.java:1036) at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMethodMarshaller.demarshalFaultResponse(DocLitWrappedMethodMarshall er.java:591) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultResponse(JAXWSProxyHandler.java:532) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:470) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:377) at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:185)
这大致的意思是客户端发送的参数(uri:"", local:"colNum")与服务端接收的参数<{}sql>不一致
开始没怎么注意,就看到了
org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler
唉,怎么老是WAS报错啊,赶快查查这个类在哪里,结果是WAS容器自己带的,这~难道是WAS不支持CXF?
一番谷歌度娘后,发现was是支持的,奇怪了,Tomcat、Application调用全都可以啊。。。。
再用soapUI调用试试,正常~~~
无奈,在csdn上看到有人说是代码中缺少命名空间注释
参考:http://blog.csdn.net/maosijunzi/article/details/8278042
一番修改之后,再部署到was上,结果。。。依旧。。。
怎么办?
检查一下服务端吧,检查了半天,还是没发现有问题。。。。
无意中,在soapUI中多加了一个请求参数,OMG,竟然报了同样的错误。
至此注意到了这个错误内容:
Unmarshalling Error: unexpected element (uri:"", local:"colNum"). Expected elements a re <{}sql>
参数不对,参数不对!研究一下客户端代码,没问题,依然没问题
那是不是就代表在was上部署的没问题呢?
查。。。查。。。查。。。。
发现了,原来WAS上的应用咱本来是要用jar包里的客户端代码,结果,把源码包编译后的客户端class文件放上去了,而且是旧的,自然不会调用新的jar包了
果断删除class文件,果断重启,果断测试,终于解决~
以后部署都要谨慎点啊~唉~这闹的~
相关推荐
因此,在使用JBoss AS部署CXF应用时,可能会遇到来自CXF库及其依赖项的类加载问题。 **2. 解决方案** 为了防止类加载冲突,建议参考JBoss AS官方文档来启用类加载隔离功能。这样可以确保部署到JBoss AS上的CXF应用...
was8.5 部署cxf demo
本文将详细介绍如何将基于CXF框架构建的服务部署到IBM WebSphere Application Server 7.0(简称WAS7)的过程。 #### 二、准备工作 在开始部署之前,确保具备以下条件: 1. **安装IBM WebSphere Application ...
"cxf使用中编码问题"这个主题聚焦在如何在CXF环境中解决与GBK等特定编码相关的困扰。 首先,我们需要理解编码的本质。在计算机系统中,字符编码是用来表示文本的一种方式,如ASCII、GBK、UTF-8等。GBK是中国大陆...
实战Web Service 之 CXF 实战Web Service 之 CXF
在处理CXF与JAXB的集成时,有时会遇到版本冲突的问题,特别是在处理Web服务时,这些问题可能会导致应用程序运行异常。 本文将深入探讨如何解决CXF与JAXB版本冲突,以及如何处理Java.lang.LinkageError,特别是当...
在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,而相应的war包在tomcat上是可以正常启动的,通过后台的日志分析大致可以定位为相关的cxf类无法找到,其实这些类在项目的lib目录下都是存在的,莫名其妙...
Java CXF Webservice接口在处理Web服务时,可能会遇到跨域问题,这通常是由于浏览器的安全策略限制了不同源之间的通信。解决这个问题的关键在于理解和应用CORS(Cross-Origin Resource Sharing)机制。CORS允许...
在使用Apache CXF框架创建客户端时,可能会遇到与GBK编码相关的问题。这通常是由于数据传输过程中编码不一致或处理不当导致的。GBK编码是中文字符集的一种,它扩展了GB2312,包含了更多的汉字,但在处理非GBK字符集...
当CXF客户端与服务器进行交互时,如果双方对字符编码的理解不一致,可能会导致乱码问题,例如在这里遇到的GBK编码问题。 **GBK编码问题** GBK是GB2312的扩展,包含了大量的中文字符,广泛应用于中国地区。在处理...
7. **国际化支持**:CXF支持多语言环境,能够处理不同地区的字符编码问题。 8. **插件体系**:CXF拥有丰富的插件体系,开发者可以扩展其功能来满足特定需求。 在“lib”目录下的文件,很可能是CXF框架的各种依赖库...
在描述中提到,你遇到了官方下载页面无法访问的问题,这可能是由于网络问题、网站维护或者链接失效导致的。在这种情况下,寻找可靠的第三方资源获取CXF的jar包是必要的。CXF的jar包包含了运行和开发基于CXF的Web服务...
2. **分块计算**:为了避免长时间占用GPU导致的性能瓶颈,可以通过分块计算的方式将大规模问题分解为多个较小的子问题。一方面,可以将地质体模型分成多个部分分别计算;另一方面,也可以将观测点区域划分成若干区块...
然而,在使用CXF时,可能会遇到各种编码问题,特别是当处理非ASCII字符集,如GBK时。本篇将深入探讨"cxf3.2.0编码GBK的不可映射字符问题",并提供解决方案。 在Java中,默认的字符编码是UTF-8,而GBK是一个中文常用...
本文将深入探讨这些常见问题及其解决方案,帮助你顺利地在WebSphere应用程序服务器上运行CXF服务。 首先,理解CXF与WebSphere的集成原理至关重要。CXF提供了一个Servlet容器插件,可以将其作为一个Servlet部署到...
学习这个示例,开发者能够深入理解如何在CXF环境中创建和使用自定义转换器,这对于处理复杂的数据交换问题或与不同系统的集成非常有帮助。同时,这也展示了如何利用CXF的强大功能来提高Web服务的灵活性和可扩展性。
cxf创建客户端出现GBK编码问题解决的jar 评分: cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
总的来说,通过适当配置日志框架,我们可以将CXF的服务报文日志记录到文件中,这有助于我们在不干扰正常运行的情况下收集和分析日志信息,对于优化服务性能、追踪问题以及满足合规性要求都具有重要意义。
同时,开发者需要确保所有依赖的JAR都在类路径中,以避免运行时的依赖问题。 在实际使用中,开发者可能还需要配置CXF的相关XML配置文件(如cxf.xml或cxf-servlet.xml),以定制服务行为和设置。此外,通过Maven或...