zoukankan      html  css  js  c++  java
  • java和asp.net之间web Service的创建和调用(2)

    http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=97301&threadID=38818&tstart=0

    一直没有时间将这个东西贴出来,最近翻阅的时候才发现,只写了使用java语言编写的web service被.net所调用的部分,而没有写使用c#编写的web service被java程序所调用的部分

    ,所以现在将这篇文章贴出来,希望对大家有所帮助.

    作者:duansiyang


    二、使用c#编写的web service被java程序所调用

    -----首先我们先要在visual studio .net 2003中创建一个web service。当然,如果你已经有了,那么你可以跳过此步骤-----

    (1) 文件->新建->项目(小弟使用的是中文版,英文版的读者请谅解)
    (2) 项目类型选择visual c#项目,然后在右边选择asp.net Web服务,输入项目位置为http://localhost/ASPWebService
    (3) 单击 确定 创建工程.
    (4) 在右边的解决方案资源管理器当中选择ASPWebService,单击右键,选择添加->添加Web服务选项
    (5) 输入TestService.asmx。
    (6) 在其代码视图中,输入下面的代码

    //带参数的web service ,计算两数的和.
    [WebMethod]
    [SoapRpcMethod

    (Action="http://www.duansiyang.com/Rpc",RequestNamespace="http://www.duansiyang.com/SU",ResponseNamespace="http://www.duansiyang.com/SU")]
       public long counter(long a ,long b)
       {
    return a+b;
       }


    //无参数的web service ,产生一个0-1之间的随机数.
    [WebMethod]
    [SoapRpcMethod

    (Action="http://www.duansiyang2.com/Rpc",RequestNamespace="http://www.duansiyang2.com/SU",ResponseNamespace="http://www.duansiyang2.com/SU")]
       public double randomNumber()
       {
    Random rad = new Random(1);
    Double radnext = rad.NextDouble();
    return radnext;

       }


    (7) 同时你需要引用一个命名空间
    using System.Web.Services.Protocols;
    (8) 编译此工程。



    -----接下来我们先要在Jbuilder中创建一个调用的servlet。当然,如果jsp也可以。我们紧紧是为了举例-----

    (1)新建一个工程(^_^大家应该很熟悉了,我就不说了)
    (2)创建一个web Module
    (3)创建一个Servlet,取名为TestASPWebSvrServlet.
    (4)加入下面的代码
    try {
                Long i = new Long(1);
                Long j = new Long(2);
                String endpoint =
                        "http://localhost/ASPWebService/TestService.asmx";
                Service service = new Service();
                Call call = (Call) service.createCall();
                call.setTargetEndpointAddress(new java.net.URL(endpoint));
                call.setOperationName(new QName("http://www.duansiyang.com/SU", "counter"));
                call.addParameter("a", org.apache.axis.encoding.XMLType.XSD_DATE,
                                  javax.xml.rpc.ParameterMode.IN);
                call.addParameter("b", org.apache.axis.encoding.XMLType.XSD_DATE,
                                  javax.xml.rpc.ParameterMode.IN);
                call.setReturnType(org.apache.axis.encoding.XMLType.XSD_LONG);
                call.setUseSOAPAction(true);
                call.setSOAPActionURI("http://www.duansiyang.com/Rpc");
                Long k = (Long) call.invoke(new Object[] {i, j});
                System.out.println("result is " + k.toString() + ".");
            } catch (Exception e) {
                System.err.println(e.toString());
            }
           
           
            try {
              
                String endpoint =
                        "http://localhost/ASPWebService/TestService.asmx";
                Service service = new Service();
                Call call = (Call) service.createCall();
                call.setTargetEndpointAddress(new java.net.URL(endpoint));
                call.setOperationName(new QName("http://www.duansiyang2.com/SU", "total"));
                call.setReturnType(org.apache.axis.encoding.XMLType.XSD_DOUBLE);
                call.setUseSOAPAction(true);
                call.setSOAPActionURI("http://www.duansiyang2.com/Rpc");
                Double k = (Double) call.invoke(new Object[0]);
                System.out.println("result is " + k.toString() + ".");
            } catch (Exception e) {
                System.err.println(e.toString());
            }

    (5)你同时需要导入下面的包
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import java.util.Date;
    import java.text.DateFormat;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    (6)运行,然后你可以看到结果了。



    至此,关于这篇文章就算结束了,大家如果有什么意见,可以发送邮件到我的邮箱duansiyang@tom.com或者加我的qq:365786120来和我联系。谢谢!





    个人意见!如有不妥,敬请见谅!!!

    如果有任何意见,您可以通过我的邮箱:duansiyang@tom.com和我联系,也可以加我的QQ:365786120

    whx1977 [版主]

    发帖数: 6,941
    活跃积分: 5,630
    技术积分: 78
    可用币值: 3,000
    注册时间: 2004-2-29
    用户状态:正常
    Re: [原创] java和asp.net之间web Service的创建和调用(2)

    提交时间: Jan 28, 2007 4:37:15 PM
    引用 回复   发消息

    浅显易懂的好文章!



    伍昊献 RAINBOW
    朋友,我爱你们!
    http://dev2dev.bea.com.cn/blog/whx1977/

    有问题先看:http://edocs.bea.com/
    bea weblogic server下载
    http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=28193&tstart=0
    BEA AquaLogic User Interaction & BPM & PEP 下载地址大全
    http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=142667&threadID=45540&messageID=270183#270183


    I LOVE LIFE!I LOVE BEA!
    BECAUSE HERE'S MY LOVELY FRIENDS!
    DON'T LOOK AROUND,IT'S YOU!
  • 相关阅读:
    字典_序列解包用于列表元组字典
    字典_序列解包用于列表元组字典
    字典_元素的访问_键的访问_值的访问_键值对的访问
    字典_特点_4种创建方式_普通-dict
    元组_生成器推导式创建元组-总结
    MySql高级
    技术点
    全文检索ElasticSearch
    数仓管理
    SpringCache
  • 原文地址:https://www.cnblogs.com/cy163/p/1158298.html
Copyright © 2011-2022 走看看