Hi Scott ,

I could get it to work by setting dispatcher and delegator only.
I referred SOAPEventHandler.java which handles tenants fine.

I could not see userLogin handling tenantId as suggested by you,
can you please see the below and tell if it is correct.

Do we have test coverage to see if does not break anything else?

$ diff  -u5 XmlRpcEventHandler.java.orig   XmlRpcEventHandler.java
--- XmlRpcEventHandler.java.orig        2018-03-15 23:29:46.954352066 +0530
+++ XmlRpcEventHandler.java     2018-03-15 23:29:51.734435105 +0530
@@ -91,10 +91,12 @@
     /**
      * @see
org.apache.ofbiz.webapp.event.EventHandler#invoke(ConfigXMLReader.Event,
ConfigXMLReader.RequestMap, javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
      */
     public String invoke(Event event, RequestMap requestMap,
HttpServletRequest request, HttpServletResponse response) throws
EventHandlerException {
         String report = request.getParameter("echo");
+        dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
+        delegator = (Delegator) request.getAttribute("delegator");
         if (report != null) {
             BufferedReader reader = null;
             StringBuilder buf = new StringBuilder();
             try {
                 // read the inputstream buffer



On Thu, Mar 15, 2018 at 9:51 PM, Scott Gray <scott.g...@hotwaxsystems.com>
wrote:

> Hi Rajesh,
>
> It looks like the XmlRpcEventHandler class doesn't support this but it
> could easily be modified to do so.  I'd suggest filing a ticket, and
> perhaps even providing a patch :-)
>
> The tenantId just needs to be derived from the url and then passed into the
> userLogin service in the OfbizRpcAuthHandler.isAuthorized(...) method.
>
> Regards
> Scott
>
> On 16 March 2018 at 00:22, Rajesh Mallah <mallah.raj...@gmail.com> wrote:
>
> > Hello All ,
> >
> > Is it possible to direct the webservice call to a particular tenant using
> > XMLRPC?
> >
> > I am referring to
> >
> >
> > https://cwiki.apache.org/confluence/display/OFBIZ/Using+XMLRPC+as+an+
> > alternative+to+SOAP
> >
> >
> > consider the snippet
> >
> > =======================================================
> >   XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
> >         config.setServerURL(new URL("
> > http://127.0.0.1/webtools/control/xmlrpc";
> > <http://127.0.0.1/webtools/control/xmlrpc>));
> >         config.setEnabledForExceptions(true);
> >         config.setEnabledForExtensions(true);
> >
> >         XmlRpcClient client = new XmlRpcClient();
> >         client.setConfig(config);
> >
> >         Map paramMap = new HashMap();
> >         paramMap.put("login.username", "admin");
> >         paramMap.put("login.password", "ofbiz");
> >         paramMap.put("idToFind", "admin");
> > =======================================================================
> > I tried setting the host part of serverUrl to domain_name of
> > tenant_domain_name .
> >
> > I find that the requests always work on the first tenant .
> > i need to work with a specific tenant .
> >
> > Any help is solicited.
> >
> > regds
> > mallah.
> >
>

Reply via email to