飞机航道图:WebService之axis2详解
来源:百度文库 编辑:偶看新闻 时间:2024/04/29 12:00:15
我是用myeclipse写的首先下载axis2jar包new 一个web project 工程名AxisDemo把axis2jar包中的jar文件复制到AxisDemo/WebRoot/Web-INF下的lib中新建一个server.HelloAxis类package server;public class HelloAxis {
public String hello(String name){
return "Hello "+name;
}}配置WEB-INF下的web.xml文件,添加如下内容
AxisServlet
org.apache.axis.transport.http.AxisServlet
AxisServlet
/services/*
在WEB-INF下新建deploy.wsdd文件,内容如下
//红色部分可以随便起的
把项目部署到tomcat中,在部署后的tomcat该项目下F:\apache-tomcat-6.0.20\webapps\AxisDemo\WEB-INF新建deploy.bat批处理文件内容set Axis_Lib=F:\apache-tomcat-6.0.20\webapps\AxisDemo\WEB-INF\lib //根据自己的项目路径
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/AxisDemo/services/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
@echo off //为了查看是否出错
pause-----------------执行deploy.bat则会在WEB-INF下生成server-config.wsdd文件和attachments文件夹在浏览器打开http://localhost:8080/AxisDemo/services则可看到所有的service列表写一个测试类,main方法内容如下public static void main(String[] args) {
String SeverAdd="http://localhost:8080/AxisDemo/services/HelloAxis"; Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(SeverAdd));
call.setOperationName(new QName(SeverAdd,"hello"));//HelloAxis类的方法名
String result = (String)call.invoke(new Object[]{"xl"});
System.out.println(result);
}catch(Exception e){
e.printStackTrace();
}
}-------------------以下转载--------详见http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246071a23b4fb2d281a1980852d3d5aeb1e41eaf235702a0123aa9bcf954dddbc95282f8e3034074fc70358c75cf28b102a8b7fce4de8df0ee7cde733e3fd90808e0e04dd52756d80879c5b70498a3ae71440b0ecc209025f61e0ab7627a8193774df721de010eee1427906f2e1dc2c4ac12c&p=89769a4288d91ceb08e2927b480c&user=baidu&fm=sc&query=http%3A//xml%2Eapache%2Eorg/axis/%7DHttpErrorCode%3A404&qid=d896488d056b60bc&p1=9-------Handler应用--------------------------------Hander类可以在webservice每个方法被调用之前或后做一些事情 deploy.wsdd:
xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
HelloWorldHandler.java:
package axisTest;
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
public String hello(String name){
return "Hello "+name;
}}配置WEB-INF下的web.xml文件,添加如下内容
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/AxisDemo/services/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
@echo off //为了查看是否出错
pause-----------------执行deploy.bat则会在WEB-INF下生成server-config.wsdd文件和attachments文件夹在浏览器打开http://localhost:8080/AxisDemo/services则可看到所有的service列表写一个测试类,main方法内容如下public static void main(String[] args) {
String SeverAdd="http://localhost:8080/AxisDemo/services/HelloAxis"; Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(SeverAdd));
call.setOperationName(new QName(SeverAdd,"hello"));//HelloAxis类的方法名
String result = (String)call.invoke(new Object[]{"xl"});
System.out.println(result);
}catch(Exception e){
e.printStackTrace();
}
}-------------------以下转载--------详见http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246071a23b4fb2d281a1980852d3d5aeb1e41eaf235702a0123aa9bcf954dddbc95282f8e3034074fc70358c75cf28b102a8b7fce4de8df0ee7cde733e3fd90808e0e04dd52756d80879c5b70498a3ae71440b0ecc209025f61e0ab7627a8193774df721de010eee1427906f2e1dc2c4ac12c&p=89769a4288d91ceb08e2927b480c&user=baidu&fm=sc&query=http%3A//xml%2Eapache%2Eorg/axis/%7DHttpErrorCode%3A404&qid=d896488d056b60bc&p1=9-------Handler应用--------------------------------Hander类可以在webservice每个方法被调用之前或后做一些事情 deploy.wsdd:
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
package axisTest;
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
/**服务端:Hander类可以在webservice每个方法被调用之前或后做一些事情
* @author Tower
*
*/
public class HelloWorldHandler extends BasicHandler{
/**
*
*/
private static final long serialVersionUID = 1L;
private long COUNT=0L;
private int requestCount;
public void invoke(MessageContext arg0) throws AxisFault {
requestCount++;
COUNT++;
String status=(String)this.getOption("status");
System.out.println("HelloWorldHandler的status是:"+status+",COUNT="+COUNT+", HandlerRequestCount="+requestCount);
}
}
“土木之变”详解?
详解不列颠之战
什么是WebService
什么是webservice
星际龙骑士之舞 详解
旗木卡卡西是怎么死的?详解之.
“东洋、南洋、西洋、北洋”之详解
请求劲舞团胜利窍门之详解
给个时空魔域炎之神殿详解
axis2.war 文件在哪里可以找到?
webservice还是webservices?
webService如何调用
WebService资料教程
RationalRoseEE2003中文与webservice
QQ幻想的天空之泉任务给我详解
龙之骨 的作用详解~~大话稀有
《泰坦之旅》攻略和装备详解
哪有免费的webservice
WebService Grid技术 网格计算
详解:天地者,万物之逆旅,光阴着,百代之过客。
登录花生壳后,显示WebService失败
webservice.htc 可以跨域引用吗?
常用的调用webservice方法有哪些?
常用的调用webservice方法有哪些