A proxy service is a virtual service that receives messages and optionally processes them before forwarding them to a service at a given endpoint. The proxy service allows you to perform necessary transformations and introduce additional functionality without changing your actual service. For example, if you have an unsecured service, you can secure it through the proxy service by enabling WS-Security. Also, if you want your service to handle messages of different formats, you can create a Transformer proxy service, which will transform requests and responses based on specified XSLT configurations. A proxy service can also switch transports, process the messages with mediation sequences or tasks. It can terminate the flow or send a message back to the client even without sending it to the actual service.
Proxy Service vs. Proxy Server
Do not confuse a proxy service, which processes messages on their way to a service, with a proxy server, which acts as an intermediary for handling traffic to a server. For information on how to configure the ESB profile to route messages through a proxy server, see Working with Proxy Servers.
A proxy service is created and exposed on the specified transports through the underlying Axis2 engine. The proxy service can be a SOAP or REST/POX service over HTTP/S or SOAP, POX, Plain Text, or a Binary/Legacy service for other transports such as JMS and VFS file systems. It exposes service endpoint references (EPRs) as per the standard Axis2 conventions based on the service name.
Axis2 does not allow custom URIs to be set for services on some transports such as HTTP/S. The proxy service could be exposed over all enabled Axis2 transports such as HTTP, HTTPS, JMS, Mailand File etc. or on a subset of these as specified with the optional transports attribute.
For additional samples of manual proxy service configurations, see Proxy Service Samples.