zoukankan      html  css  js  c++  java
  • Webservice发布

    此文甚好,转载自:http://blog.163.com/java_player@126/blog/static/127930738200981555021925/

    某些地方笔者已经加以改进。

    使用工具:Myeclipse6.0 +Tomcat5.5:

    其实webservice就是实现一中机制:客户端可以远程调用服务器的方法:这样可以减少客户端处理的繁琐问题:

    下面是一个完整实例的实现过程:

    1.创建一个动态的web项目名称就叫做WebServicDemo:

    2.在项目中的Java Resource src目录下创建一个新的包名称就叫做:webServiceDemo01
    3.创建好工程和类之后就可以开始写类了:
    首先写的是服务器端的代码新建Server类:在创建好的包webServiceDemo01中新建一个类:
    代码如下:
    package webServiceDemo01;
    //服务器
    public class Server {
        //服务器中有方法
    public String fanHui(){
       String str = null;
       str = "这是从服务器返回的信息";
       return str;
    }
    public String say(String name){
       String str = null;
       str = "你好-->"+name+"-->欢迎学习WebService";
       return str;
    }
    }
    为了说明我们在服务器中写两个不同的方法,一个有参数一个没有参数的方法(注
    意方法名称的问题,方法名一定要小写啊!)
    4.写客户段的代码:新建Client类 :客户端的代码中每一步都有详细的解释:一定要弄明白每一步的作用是什么还有怎么执行的!
    package webServiceDemo01;
    import javax.xml.namespace.QName;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    //客户端(完成在客户端访问服务器的方法)
    public class Client {
         public static void main(String args[]){
        try {
             //声明一个访问终端
       String endpoint = "
    http://localhost:8080/WebServiceDemo/services/Server";  //此处地址是生成的wsdl文件夹下面wsdl文件中的  <wsdlsoap:address location="http://localhost:8080/***"/>
         Service service = new Service();//创建服务
         Call call = (Call) service.createCall();//创建呼叫服务器的Call实例
         //设置访问的地址(即终端的地址)
         call.setTargetEndpointAddress(new java.net.URL(endpoint));
         //将服务器所在的包写在new QName()的参数中;
         call.setOperationName(new QName("
    http://webServiceDemo01/",
           "say"));//并将所要访问的方法名称当作第二个参数传到服务器;表示是调用服务器的say方法 

         //此处地址是生成的wsdl文件夹下面wsdl文件中的 <schema elementFormDefault="qualified" targetNamespace="http://**"
         //由Call的实例调用invoke方法(参数用对象数组的形式传到服务器) 得到服务器返回的信息
         String returns1 = (String) call.invoke(new Object[] { "小宋" });
         System.err.println("这是调用服务器有参数的方法返回的信息:-->"+returns1);
        
         //调用没有参数的方法返回的信息
         call.setOperationName(new QName("
    http://webServiceDemo01/",
           "fanHui"));//调用返回方法
         String returns2 = (String) call.invoke(new Object[]{});
         System.out.println("这是调用服务器无参数的方法返回的信息:-->"+returns2);
        } catch (Exception e) {
         System.err.println(e.toString());
        }
    }

    到此为止整个项目的目录结果如下图所示:

    5.写完了客户端就创建好了一个webservice实例了:下面是在MyEclips的发布方法:

    在发布之前一定要确保你的环境变量一定要设置的准确(不能有其他多于的设置)!

    发布的过程:

    选定Service类右击新建web service

    一定要在Service Implementation中添加服务器类

    还有要在Publish the Web service复选框中打钩 Overwrite files without waring的复选框中打钩!然后点击下一步。

    再点击下一步。

    点击Strart server按钮启动服务!

    若出现如下图所示的异常的话是因为你在外部已经启动了Tomcat服务器了,端口正在使用之中,只要是启动任务管理器关闭了外面的Tomcat就可以了!

    出现下图所示就表示是服务器启动成功了!:

    点击next下一步:

    点击Finish完成即可;这样直接运行Client程序就可以了:

    运行的结果是:

           这是调用服务器有参数的方法返回的信息:-->你好-->小宋-->欢迎学习WebService

    这是调用服务器无参数的方法返回的信息:-->这是从服务器返回的信息

    完成了,呵呵,这样一个WebService的实例就弄完了!

  • 相关阅读:
    python中的继承和多态
    python中的深浅copy
    面向对象初识
    常用模块,异常处理
    递归,re,time,random
    内置函数,匿名函数
    生成器和迭代器
    记一次nginx由于文件过大的相关问题
    vue的Element+gin实现文件上传
    Vue问题汇总
  • 原文地址:https://www.cnblogs.com/juepei/p/3860038.html
Copyright © 2011-2022 走看看