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
原创粉丝点击