users@jax-ws.java.net

Re: FW: Getting Server Port in a jax-ws web service ?

From: Jitendra Kotamraju <Jitendra.Kotamraju_at_Sun.COM>
Date: Wed, 14 Feb 2007 13:11:48 -0800

Glenn wrote:
> I'm trying to retrieve the server address (host & port), and possibly
> the relative path (relative to server root) from within a jax-ws web
> service.
>
> I have a web service, which includes several images for retrieval
> based on metadata provided by the caller, below is a very simplified
> version of the code. I know I can use InetAddress to get the host
> name, but is there a way to retrieve the port number of the server
> that the web service is running in ?
>
> I'd prefer getting the information at run-time rather than playing
> with properties or application config files, that would have to be
> modified each time the war file is deployed.
>
> Any suggestions would be greatly appreciated.
>
> @WebService()
> public class ImageRetriever {
@Resource
WebServiceContext wsCtxt;
> @WebMethodpublic URL[] getImagery(@WebParam(name="metadata")
> Metadata metadata) {
> URL[] urls = new URL[1];
> String host = null;
> int port = 80;
>
> // TO-DO set host address to web server host
> // TO-DO set port to webserver port
>
> url[0] = new URL("http", host, port, "Imagery/image1.png");
MessageCtxt msgCtxt = wsCtxt.getMessageContext();
HttpServletRequest req =
(HttpServletRequest)msgCtxt.get(MessageContext.SERVLET_REQUEST)
// using req you can get all the information req.getScheme(),
req.getServerName(), req.getServerPort() etc

Jitu

> return urls;
> }
> }
>
> Thanks,
> Glenn
> ------------------------------------------------------------------------
> *Join Excite! - http://www.excite.com*
> The most personalized portal on the Web!