Hi,

I'm experiencing a few problems with the way ServletValidator works.
My webapp is very common, I have a war providing a web.xml. This web.xml
contains a Forms login authentication following this approach :

<web-app>
  <security-constraint>
<web-resource-collection>
<web-resource-name>Protected Page</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>

<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>


<login-config>
<auth-method>FORM</auth-method>
<realm-name>myRealm</realm-name>
<form-login-config>
<form-login-page>/TestSample.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
</web-app>

When I launch this webapp in hosted mode, the trace doesn't provide any
clear info, it says :

javax.servlet.UnavailableException: Configuration problem
at
org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:298)
at
org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222)
at com.dng.test.ServletValidator.create(ServletValidator.java:68)
at com.dng.test.ServletValidator.create(ServletValidator.java:51)
at com.dng.test.MonTest.main(MonTest.java:15)

With no way to get around (even -logLevel SPAM does not do the trick)

Anyway. I tried to find out a solution skipping jetty web.xml validation and
started the dev mode with -noserver and configuring an external tomcat
instance.
When I re-started the devmode, jetty is no more started but I still get the
ServletValidator running (which is not what I would expect, if I bypass
jetty I don't want to use its web.xml validator,specifically when Tomcat
validates the same file).

So, I took ServletValidator class and suppressed the line that consume the
real message (this is not a "spammy logs" :-)) :
static {
 // Suppress spammy Jetty log initialization.
 //System.setProperty("org.mortbay.log.class",
JettyNullLogger.class.getName());
}

Now the exception is pretty clear, I have a problem with my realm-name
(which is normal, I use Tomcat with specific properties file):

2009-10-26 11:52:30.134::WARN:  Configuration problem at <login-config>
<auth-method>FORM</auth-method>
<realm-name>myRealm</realm-name>
<form-login-config>
<form-login-page>/TestSample.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
java.lang.NullPointerException
at
org.mortbay.jetty.webapp.WebXmlConfiguration.initLoginConfig(WebXmlConfiguration.java:883)
at
org.mortbay.jetty.webapp.WebXmlConfiguration.initWebXmlElement(WebXmlConfiguration.java:359)
at
org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:289)
at
org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222)

So, my questions are :
1) Why is it required to validate web.xml with jetty validator when we run
in -noserver mode ?
2) Why JettyNullLogger is applied by default in this static non-configurable
bloc ? In my case, I did not get the real error ...

Thanks for your help

Sami

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to