`
pp21
  • 浏览: 1410 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

xfire1.2.6在 weblogic下传输二进制数据的时候报异常的解决方案

阅读更多
手头负责了一个j2ee项目是跟CAD二次开发平台做交互的。通讯通过webservice来做,文件传输通过byte[]数组。项目进行到最后的测试阶段,突然发现原来在tomcat跑得好好的程序在weblogic不能用了。
异常信息如下:
严重: Fault occurred!
java.lang.UnsupportedOperationException
        at weblogic.xml.stax.XMLStreamReaderBase.getTextCharacters(XMLStreamReaderBase.java:487)
        at org.codehaus.xfire.util.stax.DepthXMLStreamReader.getTextCharacters(DepthXMLStreamReader.java:179)
        at org.codehaus.xfire.util.stax.DepthXMLStreamReader.getTextCharacters(DepthXMLStreamReader.java:179)
        at org.codehaus.xfire.aegis.type.basic.Base64Type.readObject(Base64Type.java:71)
        at org.codehaus.xfire.aegis.type.basic.ArrayType.readCollection(ArrayType.java:80)
        at org.codehaus.xfire.aegis.type.basic.ArrayType.readObject(ArrayType.java:48)

百度+谷歌之后,发现原来是项目中的webservice框架xfire1.2.6跟weblogic9.2有冲突。
大致的解决方法无非是改变jar包的加载顺序,或者改接口方法将byte[]改成string。
但是项目非常赶,而且cad二次开发平台是外包方做的,同时外包方人不在现场,联调起来非常痛苦,如果再让他们改接口,时间耽误不起啊。
经过了一个晚上的尝试,我发现其实第二种方法在不更改用户的接口情况下,将服务端的接口方法中的byte[]改成string可行。
通过分析xfire生成的wsdl文件后,我发现byte数组在里面描述的类型为xsd:base64Binary,这样的话是不是意味着实际上byte最后还是会转换成base64编码传递给客户端呢?
如果是的,那么如果我自己把接口定义更改为string,但是客户端的接口不做更改,他们还是用byte[]传递给我,我这边接收到的会不会是base64编码。
于是我尝试了一下,发现传递过来的字符串果然是base64编码。然后我再转换成byte数组就ok了。
byte[] result = new sun.misc.BASE64Decoder().decodeBuffer(str.trim());

这样我的程序就正常在weblogic上面运行了。
分享到:
评论

相关推荐

    xfire-1.2.6.rar xfire-1.2.6.rar xfire-1.2.6.rar

    通过查看源代码,开发者可以深入理解XFire的工作机制,进行定制化开发,解决特定场景下的问题,或优化性能。源代码的开放性也是开源项目的一大优势,促进了技术的交流与进步。 再者,`xfire-distribution-1.2.6.zip...

    xfire1.2.6_plugin

    《xfire1.2.6_plugin:Eclipse插件详解》 在软件开发领域,Eclipse作为一款强大的集成开发环境(IDE),深受广大开发者喜爱。为了提升开发效率和功能拓展,Eclipse支持丰富的插件机制。其中,"xfire1.2.6_plugin"是...

    xfire1.2.6 ws-security示例

    在这个示例中,我们将探讨如何在xfire1.2.6中实现和应用WS-Security。 WS-Security标准由OASIS(Organization for the Advancement of Structured Information Standards)制定,旨在提供一种在SOAP消息层进行安全...

    xfire1.2.6版本及依赖文件

    8. **依赖管理**: 提供的`xfire1.2.6_all`压缩包可能包含了所有必要的依赖文件,这方便开发者快速集成到项目中,避免了手动解决依赖问题的麻烦。 9. **文档和社区支持**: 虽然XFire 1.2.6相对较旧,但在其活跃时期...

    XFire1.2.6

    在本压缩包“XFire1.2.6”中,包含的是XFire 1.2.6版本所需的全部jar文件,这些文件是开发者进行基于webservice开发的重要组成部分。 一、XFire简介 XFire是一个轻量级的Web服务实现,它通过简化API和快速的性能,...

    Spring2.0和XFire1.2.6整合案例

    1. **添加依赖**:首先,你需要在项目的类路径下包含Spring和XFire的相关jar文件。这些文件通常可以从Maven仓库或官方网站下载。在现代项目中,通常会使用Maven或Gradle等构建工具来管理依赖。 2. **配置Spring**:...

    xfire1.2.6源代码源文件

    xfire1.2.6 源代码 源文件 源程序。供调试、研究用。

    Xfire1.2.6版API手册.chm

    Xfire1.2.6版API手册.chmXfire1.2.6版API手册.chmXfire1.2.6版API手册.chmXfire1.2.6版API手册.chm

    XFire 1.2.6调用Web Service的几种方法

    XFire 1.2.6 调用 Web Service 的几种方法 XFire 1.2.6 是一个流行的开源 Web 服务框架,提供了多种调用 Web 服务的方法。了解这些方法对于开发高效、可靠的 Web 服务客户端非常重要。本文将详细介绍 XFire 1.2.6 ...

    XFire1.2.6完整版JAR包

    XFire1.2.6完整版JAR包是一款历史悠久的游戏服务器通信软件,它主要用于网络游戏的多人联机功能。XFire的出现,使得玩家能够轻松地与朋友们一起进行在线游戏,享受更加流畅、稳定的多人对战体验。这个版本是1.2.6,...

    xfire1.2.6.jar

    去除xfire传递date类型的数据时值为null时的异常的jar包

    spring3.0整合Xfire1.2.6 开发webservice需要的jar包

    在Java世界中,Spring框架是企业级应用开发的首选,而Web服务(Web Service)则是一种跨语言、跨平台的通信标准,用于不同系统之间的数据交换。本篇将详细讲解如何利用Spring 3.0与Xfire 1.2.6进行集成,以开发高效...

    xfire-1.2.6所有资源--实例

    **XFire 1.2.6 - 所有资源与Web服务实例详解** XFire是一个开源的Java Web服务实现框架,它提供了强大的功能,用于构建和消费基于SOAP(Simple Object Access Protocol)的服务。XFire 1.2.6是这个框架的一个版本,...

    xfire_1.2.6.rar

    标题中的"xfire_1.2.6.rar"指的是Xfire的1.2.6版本,这是一个经过压缩的RAR文件格式,RAR是一种高效的数据压缩和归档工具,由Eugene Roshal开发,常用于存储和分发大型文件。 描述中的"xfire-distribution-1.2.6....

    xfire-all-1.2.6 xfire所需的全部包

    《Xfire全方位解析:1.2.6版本的全面探讨》 Xfire,这款曾经在游戏社区中广受欢迎的即时通讯软件,以其独特的游戏整合功能和社交特性,为玩家提供了便捷的游戏内通信和社区交流平台。本文将深入探讨Xfire 1.2.6这一...

    xfire1.2.6+spring2.5整合

    本项目"xfire1.2.6+spring2.5整合"是将XFire 1.2.6与Spring 2.5这两个开源框架进行融合,以实现更高效的服务导向架构。下面将详细解释这两个框架以及它们整合的意义和方法。 XFire是一个基于Java的Web服务框架,它...

    xfire 1.2.6 API帮助文档.rar

    在使用Xfire API时,开发者需要注意数据安全和隐私保护。API请求应遵循安全规范,避免暴露用户的敏感信息。此外,遵循最佳实践,如定期更新API密钥,限制请求频率,可以防止滥用并保持良好的服务稳定性。 六、API...

    xfire 1.2.6 server

    总的来说,xfire 1.2.6服务器和CXF 1.2.6客户端是构建高效、灵活Web服务的有力工具,它们在对象传递和返回方面表现出色,为企业级服务提供了强大而可靠的解决方案。在使用过程中,开发者需要了解和掌握Web服务的基本...

    xfire1.2.6 api

    XFire 1.2.6 API 是一个针对Web服务开发的框架,主要用于简化SOAP(Simple Object Access Protocol)和WS-*(Web Services Stack)规范的实现。这个版本的API提供了丰富的功能,让开发者能够轻松地创建、发布和消费...

    xfire-1.2.6 jar包

    xfire-1.2.6 jar包是一款在IT行业中广泛使用的开源软件组件,主要用于构建分布式Web服务。这个jar包是Java Archive(JAR)格式,它包含了一系列的类文件和其他资源,使得开发者能够轻松地在应用程序中实现XML-based ...

Global site tag (gtag.js) - Google Analytics