|
OSGi™ Service Platform Release 2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
The Http Service allows other bundles in the OSGi environment to dynamically register resources and servlets into the URI namespace of Http Service. A bundle may later unregister its resources or servlets.
HttpContext
Method Summary | |
HttpContext |
createDefaultHttpContext()
Creates a default HttpContext for registering servlets or resources with the HttpService, a new HttpContext object is created each time this method is called. |
void |
registerResources(java.lang.String alias,
java.lang.String name,
HttpContext context)
Registers resources into the URI namespace. |
void |
registerServlet(java.lang.String alias,
javax.servlet.Servlet servlet,
java.util.Dictionary initparams,
HttpContext context)
Registers a servlet into the URI namespace. |
void |
unregister(java.lang.String alias)
Unregisters a previous registration done by registerServlet or registerResources. |
Method Detail |
public void registerServlet(java.lang.String alias, javax.servlet.Servlet servlet, java.util.Dictionary initparams, HttpContext context) throws javax.servlet.ServletException, NamespaceException
The alias is the name in the URI namespace of the Http Service at which the registration will be mapped.
An alias must begin with slash ('/') and must not end with slash ('/'), with the exception that an alias of the form "/" is used to denote the root alias. See the specification text for details on how HTTP requests are mapped to servlet and resource registrations.
The Http Service will call the servlet's init method before returning.
httpService.registerServlet("/myservlet", servlet, initparams, context);
Servlets registered with the same HttpContext object will
share the same ServletContext.
The Http Service will call the context argument
to support the ServletContext methods
getResource, getResourceAsStream and
getMimeType, and to handle security for requests.
If the context argument is null, a
default HttpContext object is used
(see createDefaultHttpContext()
).
alias
- name in the URI namespace at which the servlet is
registeredservlet
- the servlet object to registerinitparams
- initialization arguments for the
servlet or null if there are none. This argument is
used by the servlet's ServletConfig object.context
- the HttpContext object for the registered
servlet, or null if a default HttpContext is to be
created and used.
NamespaceException
- if the registration fails because the
alias is already in use.
javax.servlet.ServletException
- if the servlet's
init method throws an exception, or the given servlet object
has already been registered at a different alias.
java.lang.IllegalArgumentException
- if any of the arguments
are invalidpublic void registerResources(java.lang.String alias, java.lang.String name, HttpContext context) throws NamespaceException
The alias is the name in the URI namespace of the Http Service at which the registration will be mapped. An alias must begin with slash ('/') and must not end with slash ('/'), with the exception that an alias of the form "/" is used to denote the root alias. The name parameter must also not end with slash ('/'). See the specification text for details on how HTTP requests are mapped to servlet and resource registrations.
For example, suppose the resource name /tmp is registered to the alias /files. A request for /files/foo.txt will map to the resource name /tmp/foo.txt.
httpservice.registerResources("/files", "/tmp", context);The Http Service will call the HttpContext argument to map resource names to URLs and MIME types and to handle security for requests. If the HttpContext argument is null, a default HttpContext is used (see
createDefaultHttpContext()
).
alias
- name in the URI namespace at which the resources are
registeredname
- the base name of the resources that will be registeredcontext
- the HttpContext object for the registered
resources, or null if a default HttpContext is to
be created and used.
NamespaceException
- if the registration fails because the
alias is already in use.
java.lang.IllegalArgumentException
- if any of the parameters
are invalidpublic void unregister(java.lang.String alias)
After this call, the registered alias in the URI namespace will no longer be available. If the registration was for a servlet, HttpService will call the destroy method of the servlet before returning.
If the bundle which performed the registration is stopped or otherwise
"unget"s the Http Service without calling
unregister(java.lang.String)
then HttpService must automatically
unregister the registration.
However, if the registration was for a servlet,
the destroy method of the servlet
will not be called in this case since the bundle may be stopped.
unregister(java.lang.String)
must be explicitly called to cause
the destroy method of the servlet to be called.
This can be done in the
BundleActivator.BundleActivator.stop(org.osgi.framework.BundleContext)
method
of the bundle registering the servlet.
alias
- name in the URI namespace of the registration to unregister
java.lang.IllegalArgumentException
- if there is no
registration for the alias or the calling bundle was not the bundle
which registered the alias.public HttpContext createDefaultHttpContext()
The behavior of the methods on the default HttpContext is defined as follows:
|
OSGi™ Service Platform Release 2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |