From bcb57100d15a28274cfb5b441e0c7bf85c65e422 Mon Sep 17 00:00:00 2001 From: Ricardo Diaz Date: Thu, 10 Sep 2020 15:47:33 +0200 Subject: [PATCH] M #-: Fix 'Unknown type: i8' when using Java OCA (#186) The dialect 'xmlrpc_dialect_apache' must be set in the registry and xmlrpc extensions must be enabled in the Java OCA client to properly handle OpenNebula responses when requesting actions not allowed. Signed-off-by: Ricardo Diaz (cherry picked from commit 32606c23c829b893923268848ec533b41e5d34f2) --- include/RequestManager.h | 5 +++++ src/oca/java/src/org/opennebula/client/Client.java | 1 + src/rm/RequestManager.cc | 2 ++ 3 files changed, 8 insertions(+) diff --git a/include/RequestManager.h b/include/RequestManager.h index 4a87195ccb..b11fe9bf45 100644 --- a/include/RequestManager.h +++ b/include/RequestManager.h @@ -101,6 +101,11 @@ private: { return registered_methods.find(call) != registered_methods.end(); } + + void setDialect(xmlrpc_dialect dialect) + { + registry.setDialect(dialect); + } }; //-------------------------------------------------------------------------- diff --git a/src/oca/java/src/org/opennebula/client/Client.java b/src/oca/java/src/org/opennebula/client/Client.java index 8dcae79efc..9a9ed6bc37 100644 --- a/src/oca/java/src/org/opennebula/client/Client.java +++ b/src/oca/java/src/org/opennebula/client/Client.java @@ -205,6 +205,7 @@ public class Client{ } XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); + config.setEnabledForExtensions(true); try { diff --git a/src/rm/RequestManager.cc b/src/rm/RequestManager.cc index 73d1f07fb7..59973e9d4d 100644 --- a/src/rm/RequestManager.cc +++ b/src/rm/RequestManager.cc @@ -662,6 +662,8 @@ void RequestManager::register_xml_methods() RequestManagerRegistry.addMethod("one.hostpool.info", hostpool_info); RequestManagerRegistry.addMethod("one.hostpool.monitoring", host_pool_monitoring); + RequestManagerRegistry.setDialect(xmlrpc_dialect_apache); + /* Group related methods */ xmlrpc_c::method * group_allocate_pt;