Registering JspServlet via ext. point [message #106396] |
Mon, 17 March 2008 08:04 |
|
Hi all,
In order to have jsp support I have register JspServlet programmatically :
final HttpService httpService = (HttpService)context.getService(reference);
HttpContext httpContext = new
BundleEntryHttpContext(context.getBundle(),"/web");
httpService.registerServlet("/*.jsp",new JspServlet(context.getBundle(),
"/web"), null, httpContext);
So far, so good.
However, to be able to exchange data with RAP I have to use RAP
HttpContext with id 'org.eclipse.rap.httpcontext' declaratively via ext.
point mechanism.
Question:
1. Since I can not register JspServlet via ext. point how can I refer to
RAP HttpContext ?
2. Or, how can I refer to RAP HttpContext programmatically & replacing
above BundleEntryHttpContext ?
Any help would be greatly appreciated.
Best Regards,
Setya
|
|
|
Re: Registering JspServlet via ext. point [message #106425 is a reply to message #106396] |
Mon, 17 March 2008 11:36 |
|
Setya schrieb:
> 1. Since I can not register JspServlet via ext. point how can I refer to
> RAP HttpContext ?
You can do it using org.eclipse.equinox.jsp.jasper.registry.JSPFactory
which is an IExecutableExtensionFactory. See its JavaDoc for details.
<extension
point="org.eclipse.equinox.http.registry.servlets">
<servlet
alias="/ext/*.jsp"
class="org.eclipse.equinox.jsp.jasper.registry.JSPFactory">
</servlet>
</extension>
> 2. Or, how can I refer to RAP HttpContext programmatically & replacing
> above BundleEntryHttpContext ?
Have a look at:
org.eclipse.equinox.http.registry.HttpContextExtensionServic e
:)
-Gunnar
--
Gunnar Wagenknecht
gunnar@wagenknecht.org
http://wagenknecht.org/
|
|
|
|
Re: Registering JspServlet via ext. point [message #106480 is a reply to message #106439] |
Tue, 18 March 2008 05:00 |
|
Hi,
I've tried your suggestion by registering JSPFactory via ext. point:
<extension id="com.farbeyond.core.servlets"
point="org.eclipse.equinox.http.registry.servlets">
<servlet alias="/*.jsp"
class="org.eclipse.equinox.jsp.jasper.registry.JSPFactory"/ >
</extension>
But the browser keeps showing the jsp code instead.
Also the JSPFactory Javadoc says that we register the alias by appending
the path to class definition using ':' as separator or by using xml
parameters.
Am I missing something here ?
Best Regards,
Setya
|
|
|
|
Re: Registering JspServlet via ext. point [message #106515 is a reply to message #106489] |
Wed, 19 March 2008 04:06 |
|
Gunnar,
> You only need to specify a folder (using the ':' separator) if the JSPs
> are not located in the bundle root but in a folder below.
I've tried the following with no luck:
<servlet
class=" org.eclipse.equinox.jsp.jasper.registry.JSPFactory:/web/*.js p "/>
My jsp's reside under /web folder.
> Can you check if all bundles are resolved properly?
Yes, here's the result of ss command:
Configuration location:
file:/home/setya/Projects/Farbeyond/workspace-rap/.metadata/ .plugins/org.eclipse.pde.core/FBCore-OSGI/
Configuration file:
file:/home/setya/Projects/Farbeyond/workspace-rap/.metadata/ .plugins/org.eclipse.pde.core/FBCore-OSGI/config.ini
loaded
Install location:
file:/home/setya/Installers/Eclipse/EclipseRAP/eclipse-rap-1 .1.0-M2/
Framework located:
file:/home/setya/Installers/Eclipse/EclipseRAP/eclipse-rap-1 .1.0-M2/plugins/org.eclipse.osgi_3.3.1.R33x_v20070828.jar
Framework classpath:
file:/home/setya/Installers/Eclipse/EclipseRAP/eclipse-rap-1 .1.0-M2/plugins/org.eclipse.osgi_3.3.1.R33x_v20070828.jar
Debug options:
file:/home/setya/.options not found
osgi> Time to load bundles: 247
Mar 19, 2008 10:50:10 AM org.mortbay.http.HttpServer doStart
INFO: Version Jetty/5.1.x
Mar 19, 2008 10:50:11 AM org.mortbay.util.Container start
INFO: Started org.mortbay.jetty.servlet.ServletHandler@1ce784b
Mar 19, 2008 10:50:11 AM org.mortbay.util.Container start
INFO: Started HttpContext[/,/]
Mar 19, 2008 10:50:11 AM org.mortbay.http.SocketListener start
INFO: Started SocketListener on 0.0.0.0:8080
Mar 19, 2008 10:50:11 AM org.mortbay.util.Container start
INFO: Started org.mortbay.http.HttpServer@fbb7cb
ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.3.1.R33x_v20070828
1 ACTIVE org.eclipse.rap.ui_1.1.0.20080220-1610
2 ACTIVE org.eclipse.rap.ui.workbench_1.1.0.20080220-1610
3 ACTIVE org.eclipse.equinox.http.registry_1.0.100.v20071203
4 ACTIVE org.apache.commons.el_1.0.0.v200706111724
5 ACTIVE org.apache.jasper_5.5.17.v200706111724
6 ACTIVE com.farbeyond.core_1.0.0
7 ACTIVE org.eclipse.core.runtime_3.3.100.v20070530
8 ACTIVE org.eclipse.core.commands_3.3.0.I20070605-0010
9 ACTIVE org.eclipse.rap.rwt_1.1.0.20080220-1610
10 ACTIVE org.eclipse.equinox.http.jetty_1.0.100.v20080201
11 ACTIVE org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20070607
12 ACTIVE org.eclipse.rap.jface_1.1.0.20080220-1610
13 ACTIVE org.apache.commons.logging_1.0.4.v200711021015
14 ACTIVE org.eclipse.equinox.http.helper_1.0.0.qualifier
15 ACTIVE org.mortbay.jetty_5.1.11.v200711021015
16 ACTIVE org.eclipse.rap.ui.views_1.1.0.20080220-1610
17 ACTIVE javax.servlet.jsp_2.0.0.v200706191603
18 ACTIVE org.eclipse.equinox.common_3.3.0.v20070426
19 ACTIVE org.eclipse.osgi.services_3.1.200.v20070605
20 ACTIVE org.eclipse.equinox.registry_3.3.1.R33x_v20070802
21 ACTIVE org.eclipse.equinox.preferences_3.2.100.v20070522
22 ACTIVE org.eclipse.core.jobs_3.3.1.R33x_v20070709
23 ACTIVE org.eclipse.equinox.jsp.jasper_1.0.1.R33x_v20070816
24 ACTIVE org.eclipse.core.contenttype_3.2.100.v20070319
25 ACTIVE javax.servlet_2.4.0.v200711021030
26 ACTIVE org.eclipse.equinox.http.servlet_1.0.100.v20080201
27 ACTIVE org.eclipse.rap.ui.forms_1.1.0.20080220-1610
28 ACTIVE org.eclipse.core.expressions_3.3.0.v20070606-0010
29 ACTIVE org.eclipse.equinox.app_1.0.1.R33x_v20070828
osgi>
Here's part of my plugin.xml :
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
...
<extension id="com.farbeyond.core.resources"
point="org.eclipse.equinox.http.registry.resources">
<resource alias="/web" base-name="/web"/>
<resource alias="/images" base-name="/web/images"/>
<resource alias="/css" base-name="/web/css"/>
<resource alias="/js" base-name="/web/js"/>
</extension>
<extension id="com.farbeyond.core.servlets"
point="org.eclipse.equinox.http.registry.servlets">
<servlet alias="/welcome"
class="com.farbeyond.core.servlets.WelcomeServlet"/>
<servlet alias="/login"
class="com.farbeyond.core.servlets.LoginServlet"/>
<servlet alias="/main" class="com.farbeyond.core.servlets.MainServlet"/>
<servlet alias="/*.jsp"
class="org.eclipse.equinox.jsp.jasper.registry.JSPFactory"/ >
</extension>
</plugin>
Here's my MANIFEST.MF :
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %core.plugin.name
Bundle-SymbolicName: com.farbeyond.core;singleton:=true
Bundle-Version: 1.0.0
Bundle-Vendor: %main.title
Bundle-Localization: plugin
Require-Bundle: org.eclipse.rap.ui,
org.eclipse.rap.ui.forms,
org.eclipse.equinox.http.registry,
javax.servlet,
org.eclipse.osgi.services,
org.eclipse.equinox.jsp.jasper,
org.eclipse.equinox.http.helper,
org.eclipse.equinox.jsp.jasper.registry
Bundle-Activator: com.farbeyond.core.ui.CorePlugin
Eclipse-LazyStart: true
Bundle-ClassPath: bin/,.
Export-Package: com.farbeyond.core.extpoint
Just for checking I've deliberately change the JSPFactory servlet class
into the wrong class, but the app just runs without problems and all
bundles are marked as ACTIVE. Where can I find the log files ?
Regards,
Setya
|
|
|
|
|
Re: Registering JspServlet via ext. point [message #106604 is a reply to message #106571] |
Wed, 19 March 2008 16:24 |
|
Simon,
Thanks,
> Glad you figured it out.
> As you've discovered the parameter on the end is a context path.
> You can't use the wildcard character here, only for the URI alias.
But from the example pointer earlier why the alias is '/ext/*.jsp' instead
of '/*.jsp' ? Since I can't find /ext folder anywhere ?
Regards,
Setya
|
|
|
Powered by
FUDForum. Page generated in 0.02674 seconds