精华内容
下载资源
问答
  • webservice接口返回值类型
    2020-11-19 13:56:54

    java通过axis调用c# webService接口,传入2个参数,获取return 返回值,和ref参数
    1、c# webService 调用方法为:

    public bool WebBusiness(string code,string inxml,ref string outxml)
    

    2、java 调用
    java引用axis包

    	    String host=
    更多相关内容
  • C++2005调用C#Webservice接口返回值为List,C++2005调用C#Webservice接口返回值为List
  • 提供WebService接口调用,通过连接数据库取值,返回值为Json格式字符串
  • 自己写的一个接口,返回类型是LinkedHashMap,但是webservice会自动转换成HashMap。各位大侠,这药怎么处理
  • //所调用接口的方法method String method = "XXX"; // 创建一个服务(service)调用(call) Service service = new Service(); Call call = (Call) service.createCall();// 通过service创建call对象 // 设置service...

    第一种:返回XML

    public void XXX(ActionMapping mapping,

    ActionForm actionForm, HttpServletRequest request,

    HttpServletResponse response) throws Exception {

    String limitStr = URLDecoder.decode(request.getParameter("limit"),"utf-8");

    String offsetStr = URLDecoder.decode(request.getParameter("offset"),"utf-8");

    String projectNo = URLDecoder.decode(request.getParameter("projectNo"),"utf-8");

    if("null".equals(projectNo))

    projectNo="";

    int limit= Integer.parseInt(limitStr);

    int offset =Integer.parseInt(offsetStr);

    String start=String.valueOf((limit-1)*offset+1);

    String end=String.valueOf(limit*offset);

    //int start=(limit-1)*offset+1;

    //int end=limit*offset;

    // HttpClientUtil httpClientUtil = new HttpClientUtil();

    //Map createMap = new HashMap();

    //createMap.put("method", "GetAdviceData");

    //createMap.put("start", start);

    //createMap.put("end", end);

    //createMap.put("projectNo", "");

    //

    //String returnJson = httpClientUtil.doPost(adviceDataUrl, createMap,

    //"UTF-8");

    //responseJson.writeJsonToResponse(returnJson,response);

    String endpoint = ”XXX.asmx“;

    String targetNamespace = "http://tempuri.org/";

    //所调用接口的方法method

    String method = "XXX";

    // 创建一个服务(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(targetNamespace, method));

    //变量最好只是用String类型,其他类型会报错

    call.addParameter(new QName(targetNamespace, "projectNo"),

    Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

    call.addParameter(new QName(targetNamespace, "start"),

    Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

    call.addParameter(new QName(targetNamespace, "end"),

    Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

    call.setUseSOAPAction(true);

    //call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型

    call.setReturnType( Constants.XSD_STRING);

    call.setEncodingStyle(endpoint);

    call.setSOAPActionURI(targetNamespace +method);

    String jsonString = (String) call.invoke(new Object[] { projectNo,start,end }); //此处为数组,有几个变量传几个变量

    JSONObject obj=JSONObject.fromObject(jsonString);

    String obj1=obj.getString("Table");

    String cnt="0";

    if(obj.has("Table1"))

    {

    String obj2=obj.getString("Table1");

    JSONObject objcnt=JSONObject.fromObject(obj2);

    cnt=objcnt.getString("number");

    }

    String json="{\"rows\":"+obj1+","+"\"total\":"+cnt+"}";

    responseJson.writeJsonToResponse(json,response);

    }

    第二种:返回字符串

    public static String sendPost(String url, String param) {

    PrintWriter out = null;

    BufferedReader in = null;

    String result = "";

    try {

    URL realUrl = new URL(url);

    // 打开和URL之间的连接

    URLConnection conn = realUrl.openConnection();

    // 设置通用的请求属性

    conn.setRequestProperty("accept", "*/*");

    conn.setRequestProperty("connection", "Keep-Alive");

    conn.setRequestProperty("user-agent",

    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

    // 发送POST请求必须设置如下两行

    conn.setDoOutput(true);

    conn.setDoInput(true);

    // 获取URLConnection对象对应的输出流

    // out = new PrintWriter(conn.getOutputStream());

    out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));

    // 发送请求参数

    out.print(param);

    // flush输出流的缓冲

    out.flush();

    // 定义BufferedReader输入流来读取URL的响应

    in = new BufferedReader(

    new InputStreamReader(conn.getInputStream(),"UTF-8"));//流的编码格式

    String line;

    while ((line = in.readLine()) != null) {

    result += line;

    }

    } catch (Exception e) {

    System.out.println("发送 POST 请求出现异常!"+e);

    e.printStackTrace();

    }

    //使用finally块来关闭输出流、输入流

    finally{

    try{

    if(out!=null){

    out.close();

    }

    if(in!=null){

    in.close();

    }

    }

    catch(IOException ex){

    ex.printStackTrace();

    }

    }

    return result;

    }

    // 调用

    Stirng url=xxx.asmx/XXX;

    string para="";

    sendPost(url,para);

    展开全文
  • webService的方法的返回值不能是数组,容器类(比如List) 方法的传入参数应该为一个。 中间出现的bug 出现can’t find operation异常 出现SAX…异常 当客户端输入为多个参数时会出现第一个参数传递到服务端...

    java webService坑点

    经历一个晚上的尝试以及某航狗屎的“互联网新技术”大作业的折磨,终于找到代码的正确写法。。。。也是我对于网络端的各种东西一窍不通的体现。

    探索出的正确结果

    1. webService服务器端的方法的返回值不能是数组,容器类(比如List) 一般来说String最好

    2. 方法的传入参数应该为一个(String 最好 你要是问我为什么我也不知道)。

    中间出现的bug

    1. 出现can’t find operation异常

    2. 出现SAX…异常

    3. 当客户端输入为多个参数时会出现第一个参数传递到服务端成功,但是后面的参数都为null,并报出异常:

      impleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
      

      等类似的异常

    4. 以上三种异常可能是和服务器端方法定义多个参数和返回类型是数组或容器类导致。

    具体原因不知,我也只是为了一个大作业而寻求各种帮助,自己在宿舍尝试了近5-6个小时才意识到这个问题,作为菜鸡的我对java网络端的知识一窍不同。

    写此文章希望能帮助一些努力写demo的人们。

    代码见 github

    展开全文
  • 1> 编写自定义参数类型和返回值类型类 package com.webservice.object; import java.io.Serializable; public class Person implements Serializable { private int id; private String name; public int getId() {...

    1> 编写自定义参数类型和返回值类型类

    package com.webservice.object;
    import java.io.Serializable;
    public class Person implements Serializable {
    private int id;
    private String name;
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    } 


    2> 编写服务(方法)

    package com.webservice.wsdd;
    import com.webservice.object.Person;
    public class PersonService {
    public Person changeName(Person person){
    Person newPerson = new Person();
    if(person!=null){
    System.out.println("person id = " + person.getId());
    if(person.getId()==1){
    newPerson.setName("zhangsan");
    }else{
    newPerson.setName("lisi");
    }
    }
    return newPerson;
    }
    }

    3> 发布(和之前发布方法相同配置server-config.wsdd)

    请参照http://blog.csdn.net/zhngjan/article/details/9186603 发布方法相同

    具体配置参考如下:

    <service name="PersonService" provider="java:RPC">
      <parameter name="allowedMethods" value="changeName"/>
      <parameter name="className" value="com.webservice.wsdd.PersonService"/>
      <beanMapping languageSpecificType="java:com.webservice.object.Person" qname="ns1:Person" xmlns:ns1="BeanService"/>
     </service>

    4> 编写客户端访问方法

    package com.client;
    import java.net.URL;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.ser.BeanDeserializerFactory;
    import org.apache.axis.encoding.ser.BeanSerializerFactory;
    import org.apache.axis.wsdl.symbolTable.Parameter;
    import com.webservice.object.Person;
    public class TestWSDDObject {
    /**
     * @param args
     */
    public static void main(String[] args) {
    try{
    Person personIn = new Person();
    personIn.setId(1);
    String url = "http://localhost:8888/axis/services/PersonService";
    Service service = new Service();
    Call call = (Call)service.createCall();
    // 设置调用参数类型
    QName qn = new QName("urn:BeanService", "Person");
    call.registerTypeMapping(Person.class, qn, new BeanSerializerFactory(Person.class, qn), new BeanDeserializerFactory(Person.class, qn));
    // 设置调用服务的地址
    call.setTargetEndpointAddress(new URL(url));
    // 设置调用方法名
    call.setOperationName(new QName("", "changeName"));
    // 设置参数值
    call.addParameter("arg1", qn, ParameterMode.IN);
    // 设置返回值类型
    call.setReturnClass(Person.class);
    // 调用
    Person personOut = (Person)call.invoke(new Object[]{personIn});
    String name = "no !";
    if(personOut !=null) {
    name = personOut.getName();
    }
    System.out.println("name = " + name);
    }catch(Exception e){
    e.printStackTrace();
    }
    }
    }


    展开全文
  • C# 中WebService返回类型

    千次阅读 2014-04-20 13:03:21
    WebService 服务可以返回任何可序列化的对象.本文代码给出返回基本数据类型及实体类结构示例和调用代码 WebService 服务可以返回任何可序列化的对象.本文代码给出返回基本数据类型及实体类结构示例和调用代码示例. ...
  • C# WebService返回数据四种方法(DataSet, 序列化的DataSet, Microsoft组件处理序列化DataSet, Microsoft组件处理序列化压缩DataSet)及动态调用WebService
  • 泛微 ecology9.0 文档(DocService)WebService接口使用说明
  • 1.概述 2.接入说明 3.接口方法概述 4.接口方法详述 4.1.接口方法1(Test1) 4.2.接口方法2(Test2) 4.3.接口方法3(Test3) 5.代码映射表 5.1. 代码表1 5.2. 代码表2 5.3. 代码表3
  • CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为: java.lang....
  • 泛微OA e-cology 8 最新webservice接口文档 包含获取OA流程、新建流程等接口
  • 泛微OA系统工作流WebService接口使用说明.doc,含调用实例.....................................................................................................................................................
  • 自己总结的springboot集成CXF发布webservice接口,包含说明,代码,截图
  • API接口之webservice接口

    千次阅读 2022-04-28 17:13:36
    一、准备工作:apache cxf,axis,httpclient等,目前流行是用cxf,本节也是用cxf实现 ...1.webservice在项目中的配置,如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springfram
  • 主要介绍了Java调用WebService接口的方法,实例分析了有参方法Add的使用技巧,需要的朋友可以参考下
  • 1.其中sendSyncMsg1接口是方法名,Vector实现了List接口,xml是sendSyncMsg1的方法形参Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(new URL( ...
  • 1、用SoapUI测试webservice接口,传入参数是xml格式时。xml格式需要将xml的外围增加2、但是用python去做webservice测试,调用函数去传参时,直接将xml作为字符串的格式传入即可。其中,webservice请求的返回值类型是...
  • 1、用SoapUI测试webservice接口,传入参数是xml格式时。xml格式需要将xml的外围增加xml]]>2、但是用python去做webservice测试,调用函数去传参时,直接将xml作为字符串的格式传入即可。其中,webservice请求的...
  • 编写webservice接口:1.添加一个web项目后,新建一个文件夹WebService,在文件夹里建一个web服务,名叫TestWebService.2.简单列举2个方法,这个时候可以在数据库中调取数据,只是举了2个不带参数简单的例子。...
  • WebService接口的生成和调用(WebService接口

    万次阅读 多人点赞 2019-03-01 13:26:23
    一:WebService的服务端发布 1:发布web程序服务端发布 2:本地发布 二:Webservice客户端调用: 1:本地生成代码,直接调用: 2、利用dos命令生成代码,和第一种基本一致 3:利用apache的AXIS直接调用远程...
  • Axis1.4调用.Net返回值为DataSet类型WebService接口 1.相关说明 2.Axis1.4下载及依赖 1.Axis1.4下载 1.非maven环境导入依赖的包 3.maven环境导入依赖的包 3.WebService服务接口地址 4.编写调用WebService服务的...
  • webservice如何处理返回值是list集合

    万次阅读 2015-08-13 12:19:55
    在上篇博客中介绍了入门实例,并搭建的基本的框架和引入jar包,下面在原来的基础上学习webservce如何处理返回值是list集合。 一、服务端 1.建pojo类(Cat和User) public class User { private int id; private ...
  • Java调用WebService接口

    2022-06-07 21:51:51
    通常要调用WebService接口需要暴露一个wsdl文档来告诉调用者,可以调用什么方法,需要什么参数,返回值类型等。文档地址通常以wsdl结尾。如http://www.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl,可以...
  • 一、使用axis调用webService接口,返回String类型xml 1.导入axis依赖 2.直接贴代码 /** * 调用webservice接口的方法,并返回String类型的xml * @param readid 传入接口的参数 * @param url webservice的路径 ...
  • WebService接口的创建与实现 三种实现方式+示例
  • webservice接口--浅析一

    千次阅读 2021-02-20 15:11:19
    接口,其实就是跟服务器进行数据交互,把数据提交到服务端,或者查询服务端的数据,那么如何数据交互,需遵循接口协议,根据协议的不同这里分http协议和soap协议(还有其它协议就不一一列举) http 协议:HTTP协议是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,778
精华内容 4,711
关键字:

webservice接口返回值类型