解决:java webservice调用net 参数返回NULL

淘宝特卖
        今天为了java webservice 为了调用NET,真是累死了,搞了整整一天.最后才搞定.唉,在网上搜了半天的资料,没有一个提供了正确的答案,都是抄来抄去的,或者高手们都太低调了,经验没有共享出来.!一想到花了一天的时间
搞这,心里真的不爽哦.不过开心的是,还是搞了出来.为了让以后学JAVA的朋友少找弯路,少花时间,我把心得写出来

JAVA 代码:

public static void main(String[] args) throws Exception {    
          String a = "a";
  
            String endpoint = "http://192.168.0.101/ttt/WebService1.asmx";    
            // 创建一个服务(service)调用(call)    
            Service service = new Service();    
            Call call = (Call) service.createCall();// 通过service创建call对象    
            // 设置service所在URL    
            call.setTargetEndpointAddress(new java.net.URL(endpoint));  
      
            call.setOperationName(new QName("http://tempuri.org/","Add"));
            //Add 是net 那边的方法 "http://tempuri.org/" 这个也要注意Namespace 的地址,不带也会报错
           call.addParameter(new QName("http://tempuri.org/","test"),
                   org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
           // 这就是我搞了一天的原因所在,"test" 这个就是传参数的变量,也就是NET方面的参数,一定不要带错了
            // 我当初不知道 ,以为这个参数是自己随便写的,结果总是报NULL,真是气死人了
            
            call.setUseSOAPAction(true);
            call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING); //返回参数的类型
            call.setSOAPActionURI("http://tempuri.org/Add"); //这个也要注意 就是要加上要调用的方法Add,不然也会报错
            
            // Object 数组封装了参数,参数为"This is Test!",调用processService(String arg)    
            String ret = (String) call.invoke(new Object[] {a});    
            System.out.println("--------"+ret);    
      
        }  
  

以下是NET代码,完全为大家服务

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    // [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string Add(string test)
        {
            test = test;
            return test;
        }
        

        [WebMethod]
        public string test()
        {
           string temp = "10";
            return temp;
        }
    }

备注:如果大家看到此文章,解决了问题,希望大家留个言,给我点鼓励,也让我幸慰一下.呵呵

此文章如果帮助您了,购物请到www.taowule.com 谢谢!
[本日志由 liuzm 于 2010-01-05 11:30 AM 编辑]
上一篇: 网络知识:了解HTTPS和HTTP的区别
下一篇: 服务器未能识别 HTTP 头 SOAPAction 的值
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: java
相关日志:
评论: 4 | 引用: 0 | 查看次数: -
绿茶[2011-05-24 02:33 PM | | | 121.28.95.36 | del | 回复回复]
4#
能不能把要导入的类也写完整一些,我是个初学者,根据提示导入的类一个都不对啊。
贡献者的粉丝[2010-08-08 03:57 PM | | | 120.83.195.69 | del | 回复回复]
地板
太感谢了!!!
Vange[2010-06-12 11:02 AM | | | 219.136.86.54 | del | 回复回复]
板凳
哈哈,看你很眼熟,原来在csdn中见过
awikifish[2010-01-23 07:32 PM | | | 122.95.18.249 | del | 回复回复]
沙发

回复来自 liuzm liuzm 回复 [2010-01-23 08:58 PM]
呵呵,看来是问题解决了吧。哈哈
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭