Today I tried to get my listener working with a specific context and
added a ServletContextHelper and added a corresponding
@HttpWhiteboardContextSelect annotation to my SCL. Did not work either.
I also tried to change the type to a ServletRequestListener instead of a
ServletContextListener. Still didn't work.
Is there anybody who can help me on this issue?
I'm pretty clueless right now :(
Again this is my setup, maybe someone spots an error in it:
Bundles in runtime:
START LEVEL 1
ID|State |Level|Name
0|Active | 0|OSGi System Bundle
(3.13.100.v20180827-1536)|3.13.100.v20180827-1536
1|Active | 1|osgi.possiblebugs.scl.impl
(0.0.1.201902051255)|0.0.1.201902051255
2|Active | 1|Apache Commons FileUpload (1.3.3)|1.3.3
3|Active | 1|Apache Commons IO (2.6.0)|2.6.0
4|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
5|Active | 1|Apache Felix Gogo Runtime (1.0.10)|1.0.10
6|Active | 1|Apache Felix Gogo Shell (1.0.0)|1.0.0
7|Active | 1|Apache Felix Http Jetty (4.0.6)|4.0.6Li
8|Active | 1|Apache Felix Servlet API (1.1.2)|1.1.2
9|Active | 1|Apache Felix Inventory (1.0.4)|1.0.4
10|Active | 1|Apache Felix Declarative Services
(2.1.10)|2.1.10
11|Active | 1|Apache Felix Web Management Console
(4.3.4)|4.3.4
12|Active | 1|Apache Felix Web Console Service Component
Runtime/Declarative Services Plugin (2.0.8)|2.0.8
13|Active | 1|org.osgi:org.osgi.util.function
(1.1.0.201802012106)|1.1.0.201802012106
g!
List of components:
io.jatoms.osgi.possiblebugs.scl.MyServlet in bundle 1
(io.jatoms.osgi.possiblebugs.scl.impl:0.0.1.201902051258) enabled, 1
instance.
Id: 1, State:ACTIVE
io.jatoms.osgi.possiblebugs.scl.MySCL in bundle 1
(io.jatoms.osgi.possiblebugs.scl.impl:0.0.1.201902051258) enabled, 1
instance.
Id: 0, State:SATISFIED
Info for MySCL:
Class: io.jatoms.osgi.possiblebugs.scl.MySCL
Bundle: 1
(io.jatoms.osgi.possiblebugs.scl.impl:0.0.1.201902051258)
Enabled: true
Immediate: false
Services: [javax.servlet.ServletContextListener]
Scope: singleton
Config PID(s): [io.jatoms.osgi.possiblebugs.scl.MySCL], Policy: optional
Base Props: (1 entry)
osgi.http.whiteboard.listener<Boolean> = true
Component Configuration Id: 0
-----------------------------
State: SATISFIED
Service: 50 [javax.servlet.ServletContextListener]
Config Props: (3 entries)
component.id<Long> = 0
component.name<String> = io.jatoms.osgi.possiblebugs.scl.MySCL
osgi.http.whiteboard.listener<Boolean> = true
References: (total 0)
The MySCL class:
@Component
@HttpWhiteboardListener
public class MySCL implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("Bye World");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("Hello World");
}
}
And Apache Felix Web Console still lists my ServletContextListener
under "Failed Listeners" with reason "Invalid".
Is there anybody who knows what this "invalid" means?
Kind regards,
Thomas
------ Originalnachricht ------
Von: "Thomas Driessen" <thomas.driessen...@gmail.com>
An: "Raymond Auge" <raymond.a...@liferay.com>; "felix users"
<users@felix.apache.org>
Cc: "David Bosschaert" <david.bosscha...@gmail.com>
Gesendet: 04.02.2019 18:38:29
Betreff: Re[5]: ServletContextListener not working?
Hi Ray,
yes the annotation is processed. At least Apache Felix Webconsole is
showing me this output for my SCL component:
Bundle io.jatoms.osgi.possiblebugs.scl.impl (1)
Implementationsklasse io.jatoms.osgi.possiblebugs.scl.MySCL
Default Status enabled
Aktivierung delayed
Konfigurations Policy optional
Dienst Typ singleton
Dienste javax.servlet.ServletContextListener
PID io.jatoms.osgi.possiblebugs.scl.MySCL
Eigenschaften component.id = 9
component.name = io.jatoms.osgi.possiblebugs.scl.MySCL
osgi.http.whiteboard.listener = true
Sorry, the names are in german. "Eigenschaften" is the properties
section ;)
Kind regards,
Thomas
------ Originalnachricht ------
Von: "Raymond Auge" <raymond.a...@liferay.com>
An: "felix users" <users@felix.apache.org>; "Thomas Driessen"
<thomas.driessen...@gmail.com>
Cc: "David Bosschaert" <david.bosscha...@gmail.com>
Gesendet: 04.02.2019 18:28:13
Betreff: Re: Re[3]: ServletContextListener not working?
Thomas did you check that your tool chain processed the annotation
`@HttpWhiteboardListener` into the appropriate service property?
- Ray
On Mon, Feb 4, 2019 at 10:05 AM Thomas Driessen
<thomas.driessen...@gmail.com> wrote:
BTW the version of felix http is 4.0.6 and the other bundles
installed and active are:
START LEVEL 1
ID|State |Level|Name
0|Active | 0|OSGi System Bundle
(3.13.100.v20180827-1536)|3.13.100.v20180827-1536
1|Active | 1|osgi.possiblebugs.scl.impl
(0.0.1.201902041434)|0.0.1.201902041434
2|Active | 1|Apache Commons FileUpload (1.3.3)|1.3.3
3|Active | 1|Apache Commons IO (2.6.0)|2.6.0
4|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
5|Active | 1|Apache Felix Gogo Runtime (1.0.10)|1.0.10
6|Active | 1|Apache Felix Gogo Shell (1.0.0)|1.0.0
7|Active | 1|Apache Felix Http Jetty (4.0.6)|4.0.6
8|Active | 1|Apache Felix Servlet API (1.1.2)|1.1.2
9|Active | 1|Apache Felix Inventory (1.0.4)|1.0.4
10|Active | 1|Apache Felix Declarative Services
(2.1.10)|2.1.10
11|Active | 1|Apache Felix Web Management Console
(4.3.4)|4.3.4
12|Active | 1|Apache Felix Web Console Service Component
Runtime/Declarative Services Plugin (2.0.8)|2.0.8
13|Active | 1|org.osgi:org.osgi.util.function
(1.1.0.201802012106)|1.1.0.201802012106
Any idea what might be missing?
Kind regards,
Thomas
------ Originalnachricht ------
Von: "Thomas Driessen" <thomas.driessen...@gmail.com>
An: "David Bosschaert" <david.bosscha...@gmail.com>;
users@felix.apache.org
Gesendet: 04.02.2019 16:03:25
Betreff: Re[2]: ServletContextListener not working?
Hi David,
yes this is done via tha @HttpWhiteboardListener annotation. The
webconsole shows me this output for the MySCL component:
------ Originalnachricht ------
Von: "David Bosschaert" <david.bosscha...@gmail.com>
An: users@felix.apache.org; "Thomas Driessen"
<thomas.driessen...@gmail.com>
Gesendet: 04.02.2019 15:44:52
Betreff: Re: ServletContextListener not working?
Hi Thomas,
The spec states in section 140.7 [1]
"Events are sent to listeners registered in the Service Registry
with the osgi.http.whiteboard.listener service property set to
true"
Did you set this service property?
There is a constant for it in
org.osgi.service.http.whiteboard.HttpWhiteboardConstants [2]
Hope this helps,
David
[1]
https://osgi.org/specification/osgi.enterprise/7.0.0/service.http.whiteboard.html#d0e75952
[2]
https://osgi.org/specification/osgi.enterprise/7.0.0/service.http.whiteboard.html#org.osgi.service.http.whiteboard.HttpWhiteboardConstants
On Mon, 4 Feb 2019 at 06:38, Thomas Driessen
<thomas.driessen...@gmail.com> wrote:
I've investigated this further and in the Apache Felix Web Console
my
listener is listed under the "Failed Listeners". As reason
"Invalid" is
shown.
I do not know what I'm doing wrong :(
This is my ServletContextListener:
@Component
@HttpWhiteboardListener
public class MySCL implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("Destroyed");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("Initialized");
}
}
Any idea what I'm missing?
Kind regards,
thomas
------ Originalnachricht ------
Von: "Thomas Driessen" <thomas.driessen...@gmail.com>
An: "users@felix.apache.org" <users@felix.apache.org>
Gesendet: 04.02.2019 09:48:35
Betreff: ServletContextListener not working?
>Hi,
>
>I've already asked on the general OSGi Dev mailing list, but I
think
>this might be a more appropriate place to ask:
>
>I just tried to get a ServletContextListener to work, but did not
>succeed, although everything is done as defined by the spec.
>
>Here you can find a minimal example of my setup
>https://github.com/Sandared/io.jatoms.osgi.possiblebugs.scl
>
>The Servlet I'm registering is working fine, but the
>ServletContextListener that I registered too is never called.
>Even if I call getServletContext() from within the Servlet, my
Listener
>is never called.
>
>I would have expected the ServletContextListener to be called at
least
>once, after a DefaultServletContext has been created by the
>ServletContainer, or am I wrong with this assumption?
>
>Kind regards,
>Thomas
--
Raymond Augé <http://www.liferay.com/web/raymond.auge/profile>
(@rotty3000)
Senior Software Architect Liferay, Inc. <http://www.liferay.com>
(@Liferay)
Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org>
(@OSGiAlliance)