[prev in list] [next in list] [prev in thread] [next in thread]
List: xmlrpc-user
Subject: Re: ServletWebServer + enabledForExtensions
From: Lars Schnoor <Lars.Schnoor () ifad ! dk>
Date: 2011-02-16 11:16:25
Message-ID: 4D5BB209.4010702 () ifad ! dk
[Download RAW message or body]
Hi Teemu
I unfortunately don't think you will get any answer to your question. If
you look a few days/weeks back (31. January), you will notice that I
asked the same question and didn't get an answer either, I however want
to enable for extensions using Jetty as the web server.
Lars
On 15-02-2011 19:31, teemu kanstren wrote:
> Hello all,
>
> I have been using Apache XMLRPC with extensions enabled with the
> WebServer class successfully. However, now I had the need to access
> also the client IP address that is making the request to the server.
> So according to the instructions on the project web site, I switched
> to the ServletWebServer. As an end result, I manage to access the
> caller IP address just fine. However, I have problems getting
> ServletWebServer to work with extensions enabled.
>
> I tried this
>
> ServletWebServer webServer = new ServletWebServer(new
> MyXmlRpcServlet(myPropertyHandlerMapping), port);
> webServer.getConfig().setEnabledForExtensions(true);
> webServer.start();
>
> which used to work with WebServer but not with ServletWebServer. I get
> exceptions in my code complaining that the features I use require
> enabling the extensions. I thought this should work according to the
> docs, but since it did not, I went with plenty of other attempts including
>
> -creating a new config object, setting enabledForExtension to true,
> and setting this to the server instead of querying the existing one
> -modifying the doPost() method of my MyXmlRpcServlet that extends
> XmlRpcServlet to always call getXmlRpcServer.getConfig() and setting
> enabledForExtension, also the set method above for this
> -always creating a new XmlRpcHandlerMapping or caching one in the
> servlet, because I thought originally I had a problem with some
> inputstreams being used many times (lost the actual exception first)
> -various other approach I forget
>
> None of those worked for me. I always get the exception that the
> extensions are not enabled.
>
> Then I downloaded the source codes, and tried my best to understand
> what is happening. But all the modules are split and I failed to
> configure my IDE to properly access all methods across modules. Well,
> putting my Maven issues aside I then tried to understand where the
> enabledForExtensions should be enabled. I ended up somewhere in the
> XmlRpcWriter class (from my stack traces), where I got totally
> confused about all the different configuration objects all having the
> enabledForExtensions flag inside them. One is a class level object
> accessed in writeValue() and another one is passed as a parameter to
> write() that calls writeValue(). Similarly other types seemed to be
> spread in the code. Eventually I gave up trying to understand this and
> just put in some prints to show what the values are. Both the
> configurations in XmlRpcWriter were always false for enabling
> extensions in all the approaches I used. So I never really figured out
> how I should set this flag to actually get it enabled with the
> ServletWebServer.
>
> I did notice that there is only one place where the configuration
> value for enabledForExtension is accessed, and that is in the
> XmlRpcConfigImpl class, which all the rest of the config classes seem
> to extend. So I changed this to always return true for extensions and
> recompiled it all. Using this new version I got my code to work. But I
> would like to implement this properly rather than have to recompile my
> own binaries for the library.
>
> I am sure I missed something obvious, so perhaps someone could tell me
> how the extension value/configuration object traverses the code base
> and how should I set it to get it used?
>
> Thanks,
> Teemu
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic