The Install Manual Lies (my current opinion only)
The apex listener manual states that you need the user APEX_LISTENER "Only if using RESTful Services" and says that it is The database user used to query RESTful Services definitions stored in Oracle Application Express.
It seems to me that the APEX_LISTENER user somehow impinges on the administration of the apex listener from SQL Developer. And that for hassle-free administration from SQL Developer then the user is required.
And the evidence for my assertions?
Playing around with 2.0.5 standalone (on linux) I chose not to configure RESTFul services on the initial configuration. Then, when I connected from SQL Developer to administrate the listener, the listener log showed a bunch of "errors":
SEVERE: The pool named: apex_al does not exist
And sure enough apex_al.xml did not exist (nor apex_rt.xml for that matter).
Then, when I saved the configuration from SQL Developer, the apex_al.xml file was created. So I restarted the listener and attempted to reconnect from SQL Developer - this time:
Cannot connect to <appserver> http/1.1 503 service unavailable.
apex_al.xml contained the username (apex_listener) but no password. I deleted apex_al.xml and restarted the listener (which generated the apex_al does not exist message is the log as before). Back to square one.
Plan B involved running apex\apex_rest_config.sql. Neither of the RESTful services users existed so this SQL created them both. I then manually recreated apex_al.xml and this time added the password that I had specified during the apex_rest_config.sql script. Now, with the apex_Listener DB user created and its name and password in apex_al.xml, it was satisfying to see the listener starting without errors and the configuration with SQL Developer became straight forward.
Has anyone else duplicated my findings? That is, you need the apex_listener database user and apex_al.xml created and containing apex_listener username and password.
I had a hunt around to find any documentation on this but failed spectacularly. Has anyone else found any documentation to cover this aspect of setting up apex administration through SQL Developer?
Consequently, assuming that my observations are repeatable by someone/anyone else, I believe that the following changes should be made:
1. documentation about listener users changed to specify the usage of the apex_listener as part of listener administration.
2. documentation about setting up the adminlistener changed to include the creation of the apex_listener database user (apex_rest_config.sql) and then the config script (apex.war).
3. the config script (apex.war) changed to allow the configuration of the apex_listener (apex.al) as a separate parameter (and logically the apex_rest_public_user as a separate parameter as well). Or change it to at least specify that the apex_listener (apex_al) is needed for listener administration ie from "Enter 1 to enter passwords for the RESTFul services users" to "... RESTFul Services and Listener Administration users ...".