Axis - Hello World
来源:互联网 发布:手机怎么拒绝安装软件 编辑:程序博客网 时间:2024/05/16 05:49
今天又对Axis进行了一下研究。尽管以前也研究过,但是过了很久很多细节都忘记了。今天参考了网上两篇文章http://www.matrix.org.cn/resource/article/1/1592.html和http://www.yesky.com/269/1723269_2.shtml,完成了Hello World.下面介绍一下实现方法。
1. 首先编写客户端代码
package study.axis.testclient;
public class TestClient {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/axis/SayHello.jws?wsdl";// 调用的web服务的url地址,这里是一个http请求,希望得到的结果是wsdl文档。
org.apache.axis.client.Service service = new org.apache.axis.client.Service();// 建立请求服务框架实例。
/*
* org.apache.axis.client.Service实现JAX-RPC's
* javax.xml.rpc.Services接口
* 该接口充当产生下面提到的org.apache.axis.client.Call实例 的角色。
*/
org.apache.axis.client.Call call = (org.apache.axis.client.Call) service
.createCall();// 从框架中生成一个维护调用的实例。
/*
* org.apache.axis.client.Call实现了JAX-RPC's javax.xml.rpc.Call接口。
*/
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new javax.xml.namespace.QName(
"http://localhost:8080/axis", "echoString")); // 设置需要调用的函数名称
String result = (String) call.invoke(new Object[] { "hello!" });
System.out.println(result);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
2. 编写JWS----即时部署型的WebServices
2.1 编写源代码
public class SayHello {
public String echoString(String hello){
return hello;
}
}
把这个文件保存为SayHello.jws.
2.2 部署JWS
把SayHello.jws保存到%CATALINA_HOME%/webapps/axis/目录下。
2.3 编译并运行TestClient.java。
3. 通过WSDD来自定义部署
3.1 编写源代码
package study.axis.ws;
public class SayHello {
public String echoString(String hello){
return hello;
}
}
3.2 编写deploy.wsdd文件
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SayHello2" provider="java:RPC">
<parameter name="className" value="study.axis.ws.SayHello"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
3.3 编写批处理文件deploy.bat
java -classpath C:/axis-1_4/lib/axis.jar;C:/axis-1_4/lib/commons-discovery-0.2.jar;C:/axis-1_4/lib/jaxrpc.jar;C:/axis-1_4/lib/commons-logging-1.0.4.jar;C:/axis-1_4/lib/log4j-1.2.8.jar;C:/axis-1_4/lib/wsdl4j-1.5.1.jar;C:/axis-1_4/lib/axis-ant.jar;C:/axis-1_4/lib/saaj.jar org.apache.axis.client.AdminClient deploy.wsdd
pause
3.3 部署
把SayHello.class,deploy.wsdd和deploy.bat放在%CATALINA_HOME%/webapps/axis/WEB-INF/classes/study/axis/ws/目录下。
3.4 执行deploy.bat
3.5 修改TestClient.java的EndClient定义
String endpoint="http://localhost:8080/axis/services/SayHello2";
3.6 编译并运行TestClient.java
1. 首先编写客户端代码
package study.axis.testclient;
public class TestClient {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/axis/SayHello.jws?wsdl";// 调用的web服务的url地址,这里是一个http请求,希望得到的结果是wsdl文档。
org.apache.axis.client.Service service = new org.apache.axis.client.Service();// 建立请求服务框架实例。
/*
* org.apache.axis.client.Service实现JAX-RPC's
* javax.xml.rpc.Services接口
* 该接口充当产生下面提到的org.apache.axis.client.Call实例 的角色。
*/
org.apache.axis.client.Call call = (org.apache.axis.client.Call) service
.createCall();// 从框架中生成一个维护调用的实例。
/*
* org.apache.axis.client.Call实现了JAX-RPC's javax.xml.rpc.Call接口。
*/
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new javax.xml.namespace.QName(
"http://localhost:8080/axis", "echoString")); // 设置需要调用的函数名称
String result = (String) call.invoke(new Object[] { "hello!" });
System.out.println(result);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
2. 编写JWS----即时部署型的WebServices
2.1 编写源代码
public class SayHello {
public String echoString(String hello){
return hello;
}
}
把这个文件保存为SayHello.jws.
2.2 部署JWS
把SayHello.jws保存到%CATALINA_HOME%/webapps/axis/目录下。
2.3 编译并运行TestClient.java。
3. 通过WSDD来自定义部署
3.1 编写源代码
package study.axis.ws;
public class SayHello {
public String echoString(String hello){
return hello;
}
}
3.2 编写deploy.wsdd文件
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SayHello2" provider="java:RPC">
<parameter name="className" value="study.axis.ws.SayHello"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
3.3 编写批处理文件deploy.bat
java -classpath C:/axis-1_4/lib/axis.jar;C:/axis-1_4/lib/commons-discovery-0.2.jar;C:/axis-1_4/lib/jaxrpc.jar;C:/axis-1_4/lib/commons-logging-1.0.4.jar;C:/axis-1_4/lib/log4j-1.2.8.jar;C:/axis-1_4/lib/wsdl4j-1.5.1.jar;C:/axis-1_4/lib/axis-ant.jar;C:/axis-1_4/lib/saaj.jar org.apache.axis.client.AdminClient deploy.wsdd
pause
3.3 部署
把SayHello.class,deploy.wsdd和deploy.bat放在%CATALINA_HOME%/webapps/axis/WEB-INF/classes/study/axis/ws/目录下。
3.4 执行deploy.bat
3.5 修改TestClient.java的EndClient定义
String endpoint="http://localhost:8080/axis/services/SayHello2";
3.6 编译并运行TestClient.java
- Axis - Hello World
- 我的webservice Hello world-axis
- Hello World!【Hello World】
- Hello, world!
- Hello World!
- Hello world!
- Hello World!
- Hello World!
- hello world!
- Hello World !
- Hello,World!
- Hello World!
- Hello world!
- Hello World!
- Hello World
- Hello World
- Hello world
- Hello World!
- 关于在基于Struts构架的Java Web项目中加入ICTCLAS分词两点说明
- 我是如何实现打印的
- VIM中文文档及一些开发用script
- 在.NET 2.0 中发送Email
- 今天才搞清楚:原来在C#中对象作函数参数,是引用传递:)
- Axis - Hello World
- 工作流模型转换研究
- 活的真是累!
- 关于位图的编程
- 一劳永逸的东西,呵呵
- 谁说乱世才有艰难?
- 经过测试的 可以使用的远程注入代码!!!!!我的VC里面缺少一个stdafx.h需要拷贝一个到程序
- 开源国际会议与共享国际会议一起思考的结果
- 从C/C++到Python(之二)(By Robinvane Suen)