Ofbiz呼叫服务executeFind(从数据库中获取数据)

时间:2012-03-14 13:44:13

标签: java web-services ofbiz

我试图从数据库中获取所有潜在客户/联系人/帐户。 所以我尝试使用executeFind,但这不起作用。我总是通过运行服务获得0行(也在java中)。

作为entityName我设置为示例:PartyContactInfo

我做错了什么?

public static void main(String[] args) throws MalformedURLException, XmlRpcException {

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://10.0.2.19:8080/webtools/control/xmlrpc"));
config.setEnabledForExceptions(true);
config.setEnabledForExtensions(true);

XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);

Map paramMap = new HashMap();

//Required Fields
paramMap.put("login.username", "admin");
paramMap.put("login.password", "opentaps");
paramMap.put("entityName", "Party");

Object[] params = new Object[]{paramMap};

Map result = (Map) client.execute("executeFind", params);

System.out.println(result.toString());
}

2 个答案:

答案 0 :(得分:1)

以前从未接触过ofbiz,但我的猜测是发送的参数是错误的。

这里记录了您尝试调用的方法(我认为): http://www.opentaps.org/javadocs/version-1.0/framework/api/org/ofbiz/common/FindServices.html 特别是:

public static Map executeFind(DispatchContext dctx, Map context)

因此,除非你以某种方式调用的URL在内部定义了第一个参数,否则你也需要给它。有些东西告诉我,“上下文”应该在服务器端进行整理。接下来我怀疑可能是错的,看起来像认证信息。你确定你应该在与你想要查看的表名相同的“包”参数中提供登录信息吗?

我知道这个答案是不完整的,但要得到一个认真的答案,你必须让听众确切地知道你正在使用哪个rpc服务器(以便他们可以检查文档)。因为否则你唯一的希望就是那个从内到外(或至少相对较好)知道内幕消息的人会偶然发现这个问题。祝好运!

答案 1 :(得分:0)

在吐出服务器日志文件后,它看起来像是来自ofbiz服务器的内部错误。如果可以修补它,它会报给Ofbiz!希望这些服务很快就能恢复正常。