Make sure your MDB runs in the requestor context that has the access to system pages. For example, you can configure MDB to run authenticated and make sure the user used for authentication has the access to those system pages.
This is expected. The requestor created for listeners and services is of type APP. For this requestor type, the system pages such as pxRequestor, Application, etc. are kept lightweight and may not contain all the data that you would normally see when you login to Pega through a browser.
We are calling a java libary / codeset . The code set needs to know the host and port, because it needs to perform a naming lookup from the web application container, in order to use a service provided by the container.
Joseph, the properties pxReqServer and pxReqServerPort only get populated when HTTP-based requests are made into Pega. This means all requests made to Pega via the browser or through calls made to Pega SOAP/HTTP/REST services. That's why you don't find them populated in case of JMS services. I can't think of any workarounds at this point. Let's see if anyone here has any ideas.