由于websphere还在1.4的jdk上, 所以, xfire,cxf 不能在websphere 上运行, 其选择也只能用axis1或axis2了, 最近的一个项目中, 美国的一个中间服务商提供给公司一个webservice接口文件(wsdl), 公司用axis1对其进行了客户端的生成, 经过在生产环境中短时间的测试证明是可运行的, 但是生产环境的数据比较敏感, 一般不给我们这边进行长时间的测试, 所以, 这就要求我们根据wsdl生成服务端的程序模拟这个webservice以供测试, 关于底程的业务逻辑的重构暂且不谈,主要是公司要求用websphere的服务器发布, 于是用websphere自带的webservice进行开发,完成后发布至本地的服务器上进行了测试, 居然有版本冲突的问题,开发工具自带的服务器可以跑,但发布后就报自定义对象不能序列化的错误,实在的头大,于是就放弃继而采用axis1, 以记录实现步骤.
1) 开发还是在wsad中进行,以确保其环境可以适应websphere, 通过wsdl生成server端(用ant自动生成,这样可重用).
<?xml version="1.0" encoding="UTF-8"?>
<project name="wsclient" default="all" basedir=".">
<property name="axis.home" value="C:\axis-1_4" />
<property name="options.output" location="../src"/>
<path id="axis.classpath">
<fileset dir="${axis.home}/lib">
<include name="**/*.jar" />
</fileset>
</path>
<taskdef resource="axis-tasks.properties" classpathref="axis.classpath" />
<target name="init">
<echo>Warning: please update the associated WSDL file(s) in the folder wsdl before running the target!</echo>
<echo>Warning: Just run the target(s) related with your developing work!</echo>
<echo>
</echo>
</target>
<target name="-WSDL2Axis" depends="init">
<mkdir dir="${options.output}"/>
<axis-wsdl2java serverside="true" output="${options.output}" url="${options.WSDL-URI}" verbose="true"/>
</target>
<target name="all">
<antcall target="XXX.wsdl"/>
</target>
<target name="XXXService">
<antcall target="-WSDL2Axis">
<param name="options.WSDL-URI" location="XXX.wsdl"/>
</antcall>
</target>
</project>
2) 将生成的deploy.wsdd与undeploy.wsdd拷贝到指定目录, 如果有多个可以合并一下(多个wsdl自动生成)
3) 在下载X:\axis-1_4\webapps找到axis的目录, 放到wsad中,可据需要重命名项目, 对于其中的*.class的文件最好打个jar包放入lib中.(给个打jar的例子)
<?xml version="1.0" encoding="UTF-8"?>
<project name="axis" default="tojar" basedir=".">
<property name="dirs.classes" value="."/>
<target name="tojar">
<jar destfile="./inner.jar" basedir="${dirs.classes}"/>
</target>
</project>
4) 将生成的server端代码放到JavaSource的包中并加入相关包build, 完成后目录结构如下.
其中deploy.wsdd与undeploy.wsdd是发布文件,在上面已经说过, 这个deploy.bat与undploy.bat是我写的一个快捷批处理, 在程序启动时可以进行发布与删除.
deploy.bat
set Axis_Lib=../WEB-INF/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:9080/XXXservice/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
undeploy.bat
set Axis_Lib=C:\axis-1_4\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:9080/XXXservice/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% undeploy.wsdd
这两个批处理要在程序运行起来时执行.
另外说明两点:
1: axis的包中少个文件, server-config.wsdd, 不知怎么搞的,内容大了给个下载:
2: 最好在RAD上开发,j2ee可到1.4少管很多exception, 如果要在wsad2.1.5上跑的话,可能要加一部分包,至少client调用时要加.
- 大小: 7.3 KB
分享到:
相关推荐
在本项目中,Axis1.4 被用于实现 Web 服务的发布和调用,使得其他应用程序可以通过网络接口与我们的服务进行通信。 接下来,MyBatis3 是一个优秀的持久层框架,它简化了数据库操作。MyBatis3 提供了灵活的 SQL 编写...
本文将详细介绍 WebService 的四种常见发布方式:CXF、XFire、Axis2 和 Axis1,并探讨如何通过客户端进行调用。 #### 二、CXF 方式 ##### 2.1 搭建环境 CXF 与 Spring 结合使用是当前流行的 WebService 构建方案之...
本文将详细介绍四种常见的 WebService 发布方式及其客户端调用方法,包括 CXF、XFire、AXIS1 和 AXIS2,并结合实际案例进行分析。 #### 二、CXF 方式 **1. 概述** - CXF 是 Apache 的一款开源框架,它提供了强大...
本篇主要讨论的是使用CXF和Axis2两种方式来发布WebService以及客户端如何调用它们。下面将详细阐述这两种发布方式。 1. **CXF方式** CXF(CXF=XFire+CXF)是一个开源的Java框架,它支持多种协议和服务样式,包括...
在Java开发中,调用Web服务(WebService)是一项常见的任务,尤其在系统间集成和跨平台通信时。WebService是一种基于标准的、平台和语言无关的通信机制,它允许不同的应用程序之间通过HTTP进行交互。要使用Java来...
目前市场上存在多种Web Service引擎,例如Axis、XFire、JBoss、WebLogic、WebSphere以及Microsoft .Net等。其中,Axis2是由Apache推出的下一代Web Service框架,它是一个基于Servlet的模型,可以在任何Servlet容器上...
这意味着开发者可以用任何喜欢的语言,在任何平台上编写WebService,并且这些服务可以在不同的环境中互相通信。 #### 二、WebService的关键技术支持 WebService平台依赖于一套协议和技术标准来实现分布式应用程序...
IBM WebSphere Application Server(WAS)是一款在企业级市场广泛使用的应用服务器软件,它支持多种服务,包括部署第三方WebService应用程序。WAS支持Java API for XML Web Services(JAX-WS),这是一种用于开发Web...
在Java环境中,Axis2提供了一个强大的工具集,使得开发者可以轻松地创建、发布和调用Web服务。它包含了代码生成器,可以从WSDL(Web Services Description Language)文件自动生成Java服务接口和服务实现。此外,...
- 例如,将一个 WebService 打包为 `Axisserver.war`。 - 通过 WebSphere 控制台发布该 WAR 文件。 **6. 创建 WebSphere 集群** - **创建 DMGR (Deployment Manager)**:只需要在一台服务器上创建。 - **创建 App...
在Java领域,有许多用于实现WebService的框架,如AXIS、XFire以及CXF。其中,CXF因其高性能、可扩展性和用户友好性而受到广泛关注。 Apache CXF是由ObjectWeb Celtix和CodeHaus XFire合并而成的项目,这两个开源...
在本部分中,我们将详细介绍如何将原生的Axis2 WAR包部署到IBM WebSphere Application Server 7 (WAS7) 上。 1. **下载Axis2** - 首先访问[Apache Axis2官方网站]...
本文档旨在详细介绍如何在WebLogic、JBoss、WebSphere等不同环境中配置EOS5.x的WebService服务,并且提供了通过EOS的WebService服务调用EOS业务逻辑的具体方法。本文档的目标读者是对EOS有一定了解的开发人员和技术...
- 跨平台性:由于Webservice基于开放标准,因此可以在任何操作系统上实现和使用。 - 可重用性:一旦开发完成,Webservice可以被多个应用程序调用。 - 易于集成:Webservice允许不同系统的组件相互协作。 - 动态...
在信息技术领域,Webservice是一种基于Web的标准协议,用于不同应用程序之间的交互和数据共享。这种技术允许系统通过互联网交换结构化的信息,实现跨平台的互操作性。本项目是一个基于Webservice的信息查询系统,...
在 Java 领域,有多种 WebService 框架可供选择,如 AXIS、XFire 和 CXF 等。 - **Apache CXF**:本部分重点介绍 Apache CXF。它是由 ObjectWeb Celtix 和 Codehaus XFire 合并而成的一个项目。其中,ObjectWeb ...
如果需要部署到其他服务器,如WebSphere 6.1,可以导出WAR文件,然后在WebSphere上部署。 ### 2. 自顶向下法(根据WSDL逆向生成Java类) #### 步骤1:创建动态Web项目 与自底向上法相同,首先创建一个动态Web项目...
CXF框架的部署十分灵活,既可在轻量级容器如Tomcat或Spring支持的容器中运行,也可整合到JBI容器如ServiceMix、OpenESB或Petals中,甚至在J2EE应用服务器上部署,如Geronimo、JOnAS、JBoss、WebLogic及WebSphere。...