您的位置:首页 > 其它

在原有AXIS WEBSERVICE基础如何制作不依赖AXIS并在WAS发布的WEBSERVICE

2006-03-17 14:06 357 查看
必须装有RAD或WSTK(这里只说前者),如果RAD中没有测试环境,则需要安装WAS6
新建WEB工程,并将AXIS相关的东西去掉:
1、所有AXIS相关的配置文件,并将WEB.xml中的AXIS的SERVLET都去掉。
2、去掉AXIS相关的库。
3、只保留所有源代码和其它配置(如过滤器,LOG4J等)
4、编译好此工程。
5、来到工程的CLASSPATH下。如web-inf/classes下
6、运行如下脚本(可做成BAT文件)

set RADHOME=C:/IBM/Rational/SDP/6.0/bin
set WAS_HOME=D:/program/IBM/WebSphere/AppServer
set PATH=%RADHOME%;%PATH%
call setupenv.bat
call cfrBean2WebService.bat -verbose -cp . -project washostservice -genMain WeatherServiceClient -clientType J2SE -host localhost:9080 com.travelsky.hostservice.HostService

注意:如没有装RAD的WAS6测试环境,将RAD/BIN下的Bean2WebService.bat和aetupenv.bat中的设置set WAS_HOME改为你自己的WAS
安装目录(如果RAD没装WAS测试环境的话。),此处的cfrBean2WebService是我改过的。

这样,会在该目录下生成一个washostservcie的目录,里面有打好的EAR包,但需要取出里面的WAR做如下修改:
1、将SPRING,LOG4J配置文件拷贝到相应的目录,还有你自己定制的其它配置文件。
2、将原WEB.xml相关过滤器等部分加到现有WAR的相应部分(因为新生成的里面只有WEBSERVICE相关的SERVLET)
3、在web-inf/lib下加入你需要的其它依赖库。

重新打包,发布(同发布普通的EAR一样,没什么区别)

客户端:

AXIS:
运行AXIS中的WSDL2JAVA生成客户端:WSDL2JAVA d:/xxx.wsdl
要运行客户端只需要Axis.jar就行了。

WAS:
利用RAD或WSTK的工具
WSDL2JAVA生成相应的各户端代码,
或在生成服务端的时候一起生成,
在这里,主要是BEAN2WEBSERVICE.bat在RAD/BIN下
运行客户端需要的库:
wes_home/lib:j2ee.jar, webservice.jar
wes_home/installedChannels: channel.http.jar, channel.tcp.jar
IBM_JRE/lib:xml.jar

以下是Bean2WebService命令输出:

set RADHOME=C:/IBM/Rational/SDP/6.0/bin
set WAS_HOME=D:/program/IBM/WebSphere/AppServer
set PATH=%RADHOME%;%PATH%
call setupenv.bat
call cfrBean2WebService.bat -verbose -cp . -project washostservice -genMain WeatherServiceClient -clientType J2SE -host localhost:9080 com.travelsky.hostservice.HostService

将RAD/BIN下的Bean2WebService.bat和aetupenv.bat中的设置set WAS_HOME改为你自己的WAS安装目录(如果RAD没装WAS
测试环境的话。)

D:/washostservice/WEB-INF/classes>runbean2ws

D:/washostservice/WEB-INF/classes>set RADHOME=C:/IBM/Rational/SDP/6.0/bin

D:/washostservice/WEB-INF/classes>set WAS_HOME=D:/program/IBM/WebSphere/AppServer

D:/washostservice/WEB-INF/classes>set PATH=C:/IBM/Rational/SDP/6.0/bin;D:/program/cTeX/localt~1/cct/bin;D:/program/cTeX/texmf
/miktex/bin;D:/program/cTeX/gs/gs7.06/bin;D:/program/cTeX/WinEdt;C:/PROGRAM FILES/THINKPAD/UTILITIES;C:/WINDOWS/system32;C:/W
INDOWS;C:/WINDOWS/System32/Wbem;C:/Program Files/ATI Technologies/ATI Control Panel;C:/IBMTOOLS/Python22;C:/Program Files/PC-
Doctor for Windows/services;C:/mysql/bin;C:/Program Files/RacerPro-1-8-1/;C:/j2sdk1.4.2_04/bin;C:/Program Files/IDM Computer
Solutions/UltraEdit-32;C:/IBM/Rational/SDP/6.0/bin

D:/washostservice/WEB-INF/classes>call setupenv.bat
IBM_RAD_BIN=C:/IBM/Rational/SDP/6.0/bin/
正在创建新项目:washostservice...
已除去 D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/classes/ 下的目录中的所有现有类
正在生成服务端点接口...

生成 WSDL:
WSWS3477I: 特定于绑定的属性为 {MIMEStyle=WSDL11, use=literal, debug=false, style=document, bindingName=HostService, encodingS
tyle=http://schemas.xmlsoap.org/soap/encoding/, verbose=true, wrapped=true, portTypeName=HostService, servicePortName=HostSer
vice, intfNS=http://hostservice.travelsky.com, location=http://localhost:9080/washostservice/services/HostService, soapAction
=DEFAULT}
WSWS3010I: 信息:生成 portType {http://hostservice.travelsky.com}HostService
!Could_Not_Reflect_Fields_ERROR_!
WSWS3010I: 信息:生成 message {http://hostservice.travelsky.com}serviceRequest
WSWS3010I: 信息:生成 type/element {http://input.hostservice.travelsky.com}HostRequest
WSWS3010I: 信息:生成 message {http://hostservice.travelsky.com}serviceResponse
WSWS3010I: 信息:生成 type/element {http://output.hostservice.travelsky.com}HostResponse
WSWS3010I: 信息:生成 binding {http://hostservice.travelsky.com}HostServiceSoapBinding
WSWS3010I: 信息:生成 binding {http://hostservice.travelsky.com}HostServiceSoapBinding
WSWS3010I: 信息:生成 service {http://hostservice.travelsky.com}HostServiceService
WSWS3010I: 信息:生成 port HostService
生成服务器端文件:
WSWS3185I: 信息:正在分析 XML 文件:D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/wsdl/HostService.wsdl
Retrieving document at 'file:/D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/wsdl/HostService.wsdl'.
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/input/HostRequest
.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/input/HostRequest
_Helper.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/input/HostRequest
_Ser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/input/HostRequest
_Deser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/output/HostRespon
se.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/output/HostRespon
se_Helper.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/output/HostRespon
se_Ser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/output/HostRespon
se_Deser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/HostService.java

WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/com/travelsky/hostservice/HostServiceSoapBi
ndingImpl.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/webservices.xml
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/ibm-webservices-bnd.xmi
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/ibm-webservices-ext.xmi
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/HostService_mapping.xml
正在配置 webservices.xml...

D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/wsdl/HostService.wsdl
使用上下文根 washostservice 添加了 Web 模块
已成功生成了 Web Service 归档“file:/D:/washostservice/WEB-INF/classes/washostservice/washostserviceEAR.ear”。
生成客户机端文件:
WSWS3185I: 信息:正在分析 XML 文件:D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/wsdl/HostService.wsdl
Retrieving document at 'file:/D:/washostservice/WEB-INF/classes/washostservice/WEB-INF/wsdl/HostService.wsdl'.
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/input
/HostRequest.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/input
/HostRequest_Helper.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/input
/HostRequest_Ser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/input
/HostRequest_Deser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/outpu
t/HostResponse.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/outpu
t/HostResponse_Helper.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/outpu
t/HostResponse_Ser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/outpu
t/HostResponse_Deser.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/HostS
ervice.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/HostS
erviceSoapBindingStub.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/HostS
erviceService.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/HostS
erviceServiceLocator.java。
WSWS3282I: 信息:正在生成 file://D:/washostservice/WEB-INF/classes/washostservice/client-side/com/travelsky/hostservice/HostS
erviceServiceInformation.java。

正在创建客户机端构建脚本...

正在创建 main 类...
全部完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: