通常要根据专用的工具将类发布为webservice才能建webservice应用,生成客户端等等;我采用的方式使用类生成webservice,可能复杂,也可能简单。
环境: Jdk1.4,tomcat5.5.23,axis1.2;要保证你建的工程有相关axis的要求,web.xml和lib的添加等等。
1.先做简单的服务类:
publicclassSms {
publicResponse send(Message msg)throwsException{
System.out.println("CONTENT:"+msg.getContent());
Response res =newResponse();
res.setMessage(msg);
res.setCode(0);
res.setErrorText("ok");
returnres;
}
}
publicclassMessage {
privateStringfrom;
privateStringto;
privateStringcontent;
privateintpriority;
publicString getContent() {
returncontent;
}
publicvoidsetContent(String content) {
this.content= content;
}
publicString getFrom() {
returnfrom;
}
publicvoidsetFrom(String from) {
this.from= from;
}
publicintgetPriority() {
returnpriority;
}
publicvoidsetPriority(intpriority) {
this.priority= priority;
}
publicString getTo() {
returnto;
}
publicvoidsetTo(String to) {
this.to= to;
}
}
publicclassResponse {
privateintcode;
//发送结果代码
privateStringerrorText;
privateMessagemessage;
//发送的原始信息
publicintgetCode() {
returncode;
}
publicvoidsetCode(intcode) {
this.code= code;
}
publicString getErrorText() {
returnerrorText;
}
publicvoidsetErrorText(String errorText) {
this.errorText= errorText;
}
publicMessage getMessage() {
returnmessage;
}
publicvoidsetMessage(Message message) {
this.message= message;
}
}
2.将Sms生成wsdl,运行工程(run),main class输入org.apache.axis.wsdl.Java2WSDL,参数
-o SMS.wsdl
-l "http://localhost:8080/omm/services/SMS"
-n "urn:SMS"
-p"com.webservice.sms" "urn:SMS"
com.webservice.sms.Sms
将在项目的跟目录下生成一个SMS.WSDL
3.根据wsdl生成服务器端方便数据是用于axis的绑定:方式与Java2WSDL正好相反main class输入org.apache.axis.wsdl.WSDL2Java;参数输入:
-t -B -v -D -s -p com.webservice.sms.server D:/workspace/myWs/SMS.WSDL
(参数请自己查找其作用,com.webservice.sms.server类输出的文件夹)
执行之后将在项目的根目录下生成相关的服务类、build.xml和deploy.wsdd,undesploy.wsdd等如:最后将类放到src下即可:
4.生成客户端与生成服务器端相似,只是参数有差异;也是生成在项目根目录下:
5.服务的部署和生成server_config.wsdd;这个我在eclipse没有试验成功,欢迎大家测试。
我使用的另一种方式。将web应用部署到tomcat上,并启动,期间后台提示没有server_config.wsdd,需要生成,跳过不用担心,后面再后来生成。如果原来已经有使用中的webservice,先保存server_config.wsdd;在做如下操作:
使用命令行CMD到达服务类和deploy.wsdd所在目录
执行以下命令:
java -Djava.ext.dirs=D:/JBuilder2006/thirdparty/ws-axis/lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/myWs/services/SMS?wsdl deploy.wsdd