java使用xml-rpc接口调用odoo数据库

本文提供了一个使用Java实现的Odoo XML-RPC API示例代码,演示了如何连接到Odoo服务器并执行基本操作,如验证权限、搜索合作伙伴记录等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详细代码如下:

package com.ccb.ccberp.controller;



import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;


public class XmlRpcDemo {  
    public static final String URL = "http://localhost:8069";  
    public static final String DB = "demo1";  
    public static final int UID = 1;  
    public static final String PASSWORD = "admin";  
    public static final String USERNAME = "admin";  
      
    public static void main(String[] args) throws Exception{  
        XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();  
        config.setServerURL(new java.net.URL(String.format("%s/xmlrpc/2/object", URL))); 
          
          
//        int uid = (int)client.execute(
//         config, "authenticate", Arrays.asList(
//         DB, USERNAME, PASSWORD, Arrays.asList(new HashMap()))); 
        
        final XmlRpcClient client = new XmlRpcClient() {{
        setConfig(new XmlRpcClientConfigImpl() {{
                setServerURL(new java.net.URL(String.format("%s/xmlrpc/2/object", URL)));
            }});
        }};
        client.execute("execute_kw", Arrays.asList(
        DB, UID, PASSWORD,
            "res.partner", "check_access_rights",
            Arrays.asList("read"),
            new HashMap() {{ put("raise_exception", false); }}
        ));
       
        List list = Arrays.asList((Object[])client.execute("execute_kw", Arrays.asList(
        DB, UID, PASSWORD,
           "res.partner", "search",
           Arrays.asList(Arrays.asList(
//             Arrays.asList("is_company", "=", true),
            Arrays.asList("customer", "=", true)))
        )));
        System.out.println(list.size());
//        client.execute("execute_kw", Arrays.asList(  
//                DB, USERID, PASSWORD,  
//                "res.partner", "write",  
//                Arrays.asList(  
//                    Arrays.asList(id),  
//                    new HashMap() {{ put("name", "永旺梦乐城苏州园区店"); }}  
//                )  
//            ));  
//        // 查找客户  
//        List<Object> partners = Arrays.asList((Object[])client.execute("execute_kw", Arrays.asList(  
//                DB, USERID, PASS,  
//                "res.partner", "name_get",  
//                Arrays.asList(Arrays.asList(id))  
//            )));  
//        if(partners!=null&&partners.size()>0){// partners格式: [[id, name]]  
//            Object[] partner = (Object[])partners.get(0);  
//            if(partner.length==2)  
//            System.out.println("客户名: "+partner[1]);  
//        }  
//        // 删除客户  
//        client.execute("execute_kw", Arrays.asList(  
//                DB, USERID, PASS,  
//                "res.partner", "unlink",  
//                Arrays.asList(Arrays.asList(id))));  
//          
//        // 客户列表  
//        List<Object> list = Arrays.asList((Object[]) client.execute(  
//                "execute_kw", Arrays.asList(  
//                        DB, USERID, PASS, "res.partner", "search_read",  
//                        Arrays.asList(Arrays.asList(  
//                                // 设置查询条件  
//                         Arrays.asList("is_company", "=", true),
//                         Arrays.asList("customer", "=", true))
//                         )
//                        )));  
//          
//        System.out.println("**********客户列表**********");  
//        for (int i=0;i<list.size();i++){  
//            Map customer = (Map)list.get(i);  
//            String name = (String)customer.get("name");  
//            System.out.println(name);  
//        }  
//        System.out.println("****************************");  
     }  
}  
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值