jq ajax调用java webservice和C# webservice爬坑记录

本人net程序员一枚,最近偶然间接到一个写接口的任务,仔细看了接口文档才发现,该任务分三个接口,两个提供的接口都是java写的,于是来了兴趣好好研究一波java的webservice。
进入正题:

JQ调用java webservice

由于这方面资料百度是在太少,于是只能慢慢研究,最终都是通过零星的方法综合起来,达到我要的目的。说明下我用的ide,我用的是IntelliJ IDEA,

1.首先创建java webservice 具体网上很多

这个就可以 :idea创建webservice

2.写webservice类

以下代码可能会有个别错误,主要是应为我只想留下结构和所需要的方法,我具体的类里面内容写的很多,应该是可以执行成功的,注释也是贴上来在补充的

package example;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebParam.Mode;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebService()
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class CKInfoService
{//关于@等注解,我回在下面贴链接,也是我辛苦寻找来的东西呀
	@WebMethod()// "获取查核任务"
	    public String getTask(@WebParam(mode = Mode.IN) String in0, @WebParam(mode = Mode.IN) String in1, @WebParam(mode = Mode.IN) String in2)
	    {//参数没有@WebParam(mode = Mode.IN)参数可能jq调用后参数值都为null,in  和out 我没具体研究 估计90%应该都是用in吧,大家可以看下面链接仔细研究
	        String result = "";
	        String code ="0000";
	        System.out.println("2接口参数0:" + in0 + "   1:" + in1 + "  2:" + in2);
	        String msg = "{\"message\":{\"task\":\"" + result + "\",\"info\":\"提示信息666\"},\"statusCode\":\"" + code + "\"}";	
	        return msg;
    }
}

贴上注解说明链接:@webservice说明,当然还有更详细的,我觉得这些应该是够用了。
还要说明的是,这个需要发布成webservice的类写好后按照上面连接的方法生成wsdl文件后,大致结构都是差不多的,
贴个wsdl结构连接吧:wsdl结构介绍

3.创建测试用html并引用jq

我的测试html 内容是这样的




    
    首页



首页

贴上请求数据拼接的参考的连接:拼接JQ请求的data
这里很容易遇到的错误就是后台获取不到参数,所有参数值都是null,按照我写的这个data格式应该是没有问题的,我是解决过的
网上还有另一种格式 两种很区别不大 唯一区别就是命名空间的声明那里。就是我构建请求data注释的那几行,对比就会发现差别,用注释的那种写法就会拿不到参数值
好了 需要的我都贴出来了在贴一张结果图吧
在这里插入图片描述
这条消息就是后台输出的结果。

jq调用C#webservice

创建就没什么说的,网上关于C# webservice的内容一大堆,其实调用也不用我说也有很多 我还是小说一下吧
ajax这样写就可以,一般都是json格式上传和返回数据,不需要java那样麻烦

$.ajax({
            contentType: "application/json",
            url: "http//:localhost/Service/ImportBuildingService.asmx/GetViewDYH",
            data: "{inparm:'" + 6666+ "'}",       //GetViewDYH,是需要访问的webservice方法
            type: "POST",
            async: false,
            dataType: 'xml',
            success: function (data) {
                if (!!data) {
                   alert(data)
                }
            },
            error: function (err) {
                alert(err.responseText);
            }
        });
[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 创建WebService文件时下面一行是注释的,要jq能够访问到必须取消下面一行的注释
    [System.Web.Script.Services.ScriptService]
    public class ImportBuildingService: System.Web.Services.WebService
    {
[WebMethod(EnableSession = false, Description = "服务")]
        public string GetViewDYH(string inparm)
        {
        string a="{\"a\":\"6\"}";
        return a;//返回的是xml格式//{\"a\":\"6\"}
        //Context.Response.Write(a);//页面格式直接输出 {\"a\":\"6\"} 一般jq ajax数据交互使用这种方式
        }
    }

相对来说C#的webservice要方便操作很多 也许是我比较熟悉,如果各位有jq访问java webservice更方便的方法 请教给我 一定虚心学习!

如有错,请各位指正 ! 随便点个赞呗~~~

你可能感兴趣的:(java)