Hi Trong,
Notes inline.
On 18/03/13 12:25, Trong Tran wrote:
Hi,
We can easily reproduce the problem in Tomcat by just reference
the PortalClusteredSSOSupportValve class in a Servlet Context
listener of a web app, to load it.
yes, I am able to reproduce it with Servlet Context listener. But I
am still not sure if I understand the usecase. Why you need to
access PortalClusteredSSOSupportValve from some Servlet Context
listener on Tomcat? Thing is that PortalClusteredSSOSupportValve is
meant to be used only in JBoss because it uses JBoss specific
clustered SSO valve. It does not makes sense to use it in Tomcat.
And it seems that moving PortalClusteredSSOSupportValve to
packaging/jboss7 won't solve your issue, because than you won't be
able to compile your listener anyway because
PortalClusteredSSOSupportValve won't be available. But maybe I still
don't uderstand the usecase...
I am able to have listener on Tomcat with code like this and it
works without throwing error:
public class PortalSSOValveListener implements
ServletContextListener {
ValveBase portalClusteredSSOSupportValve;
public void contextInitialized(ServletContextEvent sce) {
if (new J2EEServerInfo().isJBoss()) {
PortalClusteredSSOSupportValve casted =
(PortalClusteredSSOSupportValve)portalClusteredSSOSupportValve;
// Do something with the valve
}
}
public void contextDestroyed(ServletContextEvent sce) {
}
private ValveBase findValve() {
// TODO: Find valve somehow...
return null;
}
}
I can see that it has been changed in
org.apache.catalina.valves.ValveBase since Tomcat API 7.0 which
already defined a final start() method from its indirect
parent class org.apache.catalina.util.LifecycleBase
http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/ValveBase.html
I confirmed that the problem doesn't happen in JBoss, so I guess
this api part is not consistent between Tomcat and JBossWeb.
yes, It sucks that this api is changed...
In addition, there is no error in compile time as it is using
tomcat catalina version 6.0.29 declared in gatein-dep.
Hmm... I tried to run "mvn dependency:tree" in module
component/web/security where PortalClusteredSSOSupportValve
currently is. And I am seeing that it's using
jboss.web:jbossweb:jar:2.1.3.GA:provided for compilation.
Marek
Thanks,