`
thinkgem
  • 浏览: 586009 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

WebSphere5.1下发布XFire的问题解决

 
阅读更多

开发环境:

MyEclipse blue 7.5

JDK1.4.2

 

创建一个WEB Service工程XFire,按照网上的实例开发了一个简单的HelloWorld程序,发布到TOMCAT一切OK

客户端用XFire插件开发(比较方便),需要先下载插件,步骤如下:

打开EclipseHelp菜单,选择”Software Updates”,然后再选择”Find and Install.”
选择"Search for new features to install",然后点击Next
选择"Create New Remote Site" name中输入"XFire",在eclipse update site中输入

http://dist.codehaus.org/xfire/update/
选择OK
选择Finish

2、新建一个java project。命名为“Client”,其他默认,finish

3File->New->Other ,选择“XFire”文件夹下的“Code generation from WSDL document”,打开代码生成向导,

WSDL的地址栏填入http://localhost:8080/XFire/services/HelloWorldService?wsdlOutput directory栏中点浏览按钮,选择我们刚才新建的项目Client,这两项是必填的。可选项中,package一栏可以选已经存在的包名,如果不填这一项,代码生成器会在wsdl目标命名空间的基础上创建一个。

   完成后,可以看到项目中多了XFire类库,还有package下面的生成的一些类。此时要保证IDETomcat服务器是打开的。
    
此时,在调用服务之前,还有一个重要的步骤,从XFireProject项目的右键菜单里调出Properties配置窗口,选中左面一栏中的XFire项,右面会列出所有与XFire运行有关的类库,按列表中所示的,选中一些类库,这些类库在调用本服务时是必须的。

Commons Codec(commons-codec-1.3.jar)

Commons HttpClient(commons-httpclient-3.0.jar)

如果缺少这两个JAR文件,客户端在调用WEB 服务时会出错。

   所有的配置都已经完成,最后就是编写代码完成调用。

 

Tomcat下正常发布,客户端也能正常调用。然而在发布到WebSphere5.1(base)上面时,就出现了一些列问题,下面是问题简单描述(只截取了LOG中部分信息)以及解决过程。

[11-10-27 16:37:45:844 CST] 70140f9e WebGroup      E SRVE0026E: [Servlet 错误]-[javax.xml.namespace.QName: method &lt;init&gt;&#40;Ljava/lang/String&#59;Ljava/lang/String&#59;Ljava/lang/String&#59;&#41;V not found]:java.lang.NoSuchMethodError: javax.xml.namespace.QName: method <init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V not found

at at org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry.<clinit>(DefaultTypeMappingRegistry.java:66).null(Unknown Source)

at org.codehaus.xfire.aegis.AegisBindingProvider.<init>(AegisBindingProvider.java:67)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java(Compiled Code))

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java(Compiled Code))

at java.lang.reflect.Constructor.newInstance(Constructor.java(Compiled Code))

at java.lang.Class.newInstance3(Class.java(Compiled Code))

at java.lang.Class.newInstance(Class.java(Compiled Code))

at org.codehaus.xfire.service.binding.ObjectServiceFactory.getBindingProvider(ObjectServiceFactory.java:173)

at org.codehaus.xfire.service.binding.DefaultServiceConfiguration.getInParameterName(DefaultServiceConfiguration.java:162)

at org.codehaus.xfire.service.binding.ObjectServiceFactory.getInParameterName(ObjectServiceFactory.java:1063)

at org.codehaus.xfire.service.binding.ObjectServiceFactory.addOperation(ObjectServiceFactory.java:817)

at org.codehaus.xfire.service.binding.ObjectServiceFactory.initializeOperations(ObjectServiceFactory.java:761)

at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:444)

at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:374)


[11-10-27 16:37:48:875 CST]  5e824f95 WebGroup      E SRVE0026E: [Servlet 错误]-[org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry]:java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/DefaultTypeMappingRegistry
at org.codehaus.xfire.aegis.AegisBindingProvider.<init>(AegisBindingProvider.java:67)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java(Compiled Code))
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java(Compiled Code))
at java.lang.reflect.Constructor.newInstance(Constructor.java(Compiled Code))
at java.lang.Class.newInstance3(Class.java(Compiled Code))
at java.lang.Class.newInstance(Class.java(Compiled Code))
at org.codehaus.xfire.service.binding.ObjectServiceFactory.getBindingProvider(ObjectServiceFactory.java:173)
at org.codehaus.xfire.service.binding.DefaultServiceConfiguration.getInParameterName(DefaultServiceConfiguration.java:162)
at org.codehaus.xfire.service.binding.ObjectServiceFactory.getInParameterName(ObjectServiceFactory.java:1063)
at org.codehaus.xfire.service.binding.ObjectServiceFactory.addOperation(ObjectServiceFactory.java:817)
at org.codehaus.xfire.service.binding.ObjectServiceFactory.initializeOperations(ObjectServiceFactory.java:761)
at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:444)
at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:374)
at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectServiceFactory.java:355)

 

上述问题出现后开始在网上大肆查找资料,中间替换过WebSpherelib里面的几个包,报的错误虽然有所变化,但仍然不能清除。最后觉得是否与JDK版本有关,因为在WebSphere启动日志里看到WebSphere用的JDK版本是1.4.1,而我所开发的XFire工程是JDK1.5,因此决定把XFire工程用JDK包换成1.4然后用1.4版本重新编译,然后导出WAR包重新在WebSphere中发布。

 

先将WebSphere下的lib包恢复到原来状态(因为中间替换过几个包)重新发布1.4版本后,错误依旧,好吧,开始替换WebSphere下的包:

1、  先将WebSphere下的lib包中的qname.jar包删除,使用stax-api-1.0.1.jar里的QName

2、  WebSphere下的lib包中的jdom.jar替换为jdom-1.0.jar.

3、  WebSphere下的lib包中的wsdl4j.jar包替换为wsdl4j-1.5.1.jar(本来替换为xfire-1.2.6lib里面的wsdl4j-1.6.1.jar,但替换完之后服务起不来了,其他版本的没试,在网上看到好像说wsdl4j-1.5.1解决了之前版本的什么BUG.)

4、  WebSphere下的lib包中添加:stax-api-1.0.1.jarjaxen-1.1-beta-9.jar两个包。(还有说需要添加stax-untils-20040917.jar,不过好像不添加也没问题。这些包在xfire-1.2.6lib里面都有。)

重新启动服务器,我们终于可以看到盼望已久的wsdl描述页面。

 

 

总结:注意JDK版本是否冲突。注意WebSphere下的lib中的包是否和项目中的包冲突以及包是否全。

 

分享到:
评论

相关推荐

    websphere5.1应用部署

    Websphere 5.1是IBM提供的...在使用过程中,遇到问题时,可以参考IBM官方文档或在线社区寻求帮助,因为理解和解决问题是持续学习过程的一部分。希望这些信息能帮助到有需要的人,避免他们在网络资料的海洋中迷失方向。

    如何在LoadRunner8.1中配置WebSphere5.1监控

    `Websphere5.1监控(Loadrunner).doc`这份文档应该包含了详细的步骤说明,包括WebSphere服务器上的JMX配置、LoadRunner中的监控器设置等内容。仔细阅读并按照文档指示进行操作是成功配置的前提。 步骤二:准备应用...

    spring集成ibatis示例-websphere5.1选型webservice

    综上所述,这个示例展示了如何在Spring中集成iBATIS实现数据访问,以及如何在WebSphere 5.1环境下部署和发布Web服务。这不仅涵盖了Java企业级开发的基础知识,还涉及了服务器管理和Web服务技术,是学习和实践Java EE...

    XDoclet for WebSphere 5.1-开源

    因此,XDoclet for WebSphere 5.1不仅提供了强大的工具集,还拥有一个活跃的开发者社区,可以为用户提供支持和解决问题。 在提供的压缩包文件“xdoclet-websphere”中,可能包含了以下内容: 1. XDoclet for ...

    IBM WebSphere Portal 5.1 中文版(门户集成开发)

    总的来说,IBM WebSphere Portal 5.1 是一个强大且全面的门户解决方案,旨在为企业提供统一、安全且高效的数字化工作环境,促进业务流程自动化,提升用户交互体验,并支持多设备访问,适应不断变化的业务需求。

    WAS5.1安装图解

    【描述】:“本文主要是讲述在Red Hat Linux环境下安装WebSphere 5.1的过程,通过截图详细展示了配置的各个步骤。” 在Linux操作系统,尤其是Red Hat Linux上部署WebSphere,是很多IT专业人员在企业环境中常见的...

    Websphere Application Server 6.1乱码问题解决办法

    本文将详细介绍如何解决Websphere Application Server 6.1中的乱码问题。 首先,我们需要理解乱码问题产生的原因。乱码通常是由字符编码不匹配导致的,比如服务器使用了不同的字符编码来解析和显示数据。在...

    WEBSPHERE乱码问题的解决和处理

    这类问题往往会影响到业务的正常运行,降低用户体验,因此及时有效地解决问题至关重要。本文将详细探讨WEBSPHERE中出现中文乱码的具体原因以及相应的解决方案。 #### 一、问题背景与分析 根据提供的信息来看,用户...

    xfire发布和调用demo

    在描述中提到,开发者之前尝试使用CXF发布Web服务,但由于与IBM Websphere应用服务器存在兼容性问题,因此转向了Xfire。这可能是因为Xfire在当时的某些环境下更易于配置和集成,或者其API与Websphere的交互更为顺畅...

    websphere常见问题及解决办法

    WebSphere 常见问题及解决办法详解 在本文中,我们将详细探讨 WebSphere 中的一些常见问题及其解决方法。...在实际应用中,了解这些问题和解决方法可以帮助开发者快速解决问题,提高应用程序的稳定性和性能。

    websphere下部署CXF项目jar包冲突问题解决方式

    在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,...归根结底原因不是找不到类,而是发布后war下的jar与websphere自身平台下的jar冲突了,要解决此问题就要通过在websphere下建立共享库来根除,可参考附件

    Websphere 下 发布webservice

    本文将深入探讨在Websphere环境下发布Web服务的详细步骤和相关知识点。 首先,我们需要了解Websphere中的Web服务架构。它基于JAX-WS(Java API for XML Web Services)规范,提供了全面的支持,包括服务的创建、...

    WEBSPHERE(讲座)

    首先,让我们详细了解WebSphere Application Server 5.1支持的操作系统。这款版本兼容多种操作系统,包括AIX、OS/400、多种Linux发行版(如Red Hat Enterprise和SuSE SLES)、Solaris、HP-UX、Windows 2000和2003等...

    在WebSphere发布CXF注意事项

    在WebSphere上发布CXF(Camel XFire)服务是一个涉及多个步骤的过程,需要注意一系列细节以确保服务能够正常运行。CXF是一个流行的开源框架,用于构建和开发基于Java的Web服务。以下是一些关键的注意事项: 1. **...

    shiro1.3.2相关jar(解决Websphere下项目变慢问题)

    Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密服务。在Websphere应用服务器环境下,...同时,理解Shiro的核心功能和如何与Websphere协同工作对于排查和解决问题至关重要。

    Websphere Application Server 6.1有效期问题解决办法

    重新安装虽然是一种解决方案,但往往耗时费力且不一定能够成功解决问题。因此,本文将详细介绍两种无需重新安装即可解决Websphere Application Server 6.1许可证有效期问题的方法。 #### 方法一:快速解决办法 **...

    WebSphere应用发布详解

    ### WebSphere应用发布详解 #### 一、WebSphere概述与安装配置 **WebSphere** 是IBM推出的一款企业级应用服务器,主要用于部署、管理和监控Java EE应用程序。它支持多种操作系统平台,如Windows、Linux、Solaris等...

Global site tag (gtag.js) - Google Analytics