我是靠谱客的博主 无语小白菜,最近开发中收集的这篇文章主要介绍基于AXIS的WebService编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、服务端代码  

1.需要引入axis的相关包

        

2、在web.xml中配置axis的servlet

     <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <!-- 指定符合条件的请求交给AxisServlet处理 -->
        <url-pattern>/webservice/*</url-pattern>
    </servlet-mapping>

3、写一个对外发布的接口

package com.demo.webservice;

public interface HelloService {

	public String sayHello(String info);

}

4、写接口的实现类

package com.demo.webservice;

public class HelloServiceImpl implements HelloService {

    public String sayHello(String str) {
  
        return "sayHello:"+str;
    }

}

5、通过server-config.wsdd文件对外发布服务

文件存放在工程的WEB-INFO目录下

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <service name="HelloServiceImpl" provider="java:RPC">
  <parameter name="className" value="com.demo.webservice.HelloServiceImpl"/>
  <parameter name="allowedMethods" value="*"/>
 </service>
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
  </requestFlow>
 </transport>
</deployment>

6、验证

启动服务,在浏览器中键入:http://localhost:8080/webservice/HelloServiceImpl?wsdl

可以打开如下页面,表示发布成功:

二、客户端代码

1、仍然基于axis,建立HelloClient.java类:

package com.demo.webservice.client.hello;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.rpc.ServiceException;
import java.rmi.RemoteException;

public class HelloClient {

    public static void main(String[] args) {

        Service service = new Service();
        try {
            Call call = (Call)service.createCall();
            //设置地址
            call.setTargetEndpointAddress("http://localhost:8080/webservice/HelloServiceImpl?wsdl");
            //设置要执行的方法(以下两种方式都可以)
			call.setOperationName("sayHello");
            //call.setOperationName(new QName("http://webservice.demo.com","sayHello"));
            //设置要传入参数,如果没有要传入的参数,则不要写这个(参数名、参数类型、ParameterMode)
           call.addParameter("str", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
            //设置返回的类型
            call.setReturnType(org.apache.axis.Constants.XSD_STRING)
            ;

                String tfilePath = "D:\Acygj\2.xml";
                File tFile = new File(tfilePath);
                String tInputXmlString = null;

                BufferedReader in = new BufferedReader(new InputStreamReader(
                        new FileInputStream(tFile)));
                StringBuffer buffer = new StringBuffer();
                while ((tInputXmlString = in.readLine()) != null) {
                    System.out.println("&&&&&&&&&&&---"+tInputXmlString);
                    buffer.append(tInputXmlString.trim());
                }
                tInputXmlString = buffer.toString();

                System.out.println("---输入数据:");
                System.out.println(tInputXmlString);
            //调用WebService服务
            String str = tInputXmlString;
            String result = (String) call.invoke(new Object[]{str});
            System.out.println(result);
        }  catch (Exception e) {
            e.printStackTrace();
        }

    }

}

2、运行上述代码,控制台中打印内容,表示调成功了

最后

以上就是无语小白菜为你收集整理的基于AXIS的WebService编程的全部内容,希望文章能够帮你解决基于AXIS的WebService编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部