OK that sounds good. I always thought the 2 went hand in hand i.e. any legacy w3c markup validator from v1.2 upwards (which I perceived as "the front end"), and the <a href="http://valdiator.nu">valdiator.nu</a> servlet, but if we can do away with the legacy validator in view of duplication of functionality, all the better.<br>
<br>At this point then, I have stopped the apache which hosted the legacy markup validator, and fired up the servlet on port 80 like so:<br><br>python build/build.py --port=80 --local run &<br><br>We can see it's listening:<br>
<br>[root@vp-w3c-validator12 tmp]# netstat -ltunp | grep 80<br>tcp        0      0 :::80                       :::*                        LISTEN      4402/java<br><br>Even so, I am encountering the same problem as before: although it's possible to telnet to port 80 on this host from wherever (btw I run the servlet on port 80 as it's the "generally open" port in our network), it's still not possible to browse port 80 on this host, not even from the local machine using any command line browser like lynx, links or w3m.<br>
<br>As I now get a never-ending "HTTP request sent, awaiting response... ", the next thing would be to try and diagnose the problem using tcpdump.<br><br>Can you think of any obvious reason the servlet would not reply to the http request?<br>
<br>In case anyone can spot anything, this is how it's going down: <br><br>[root@vp-w3c-validator12 checker]# python build/build.py --port=80 --local run &<br>[1] 4436<br><br>[root@vp-w3c-validator12 checker]# java -XX:-DontCompileHugeMethods -Xms131072k -Xmx131072k -XX:ThreadStackSize=2048 -classpath ./dependencies/commons-codec-1.4/commons-codec-1.4.jar:./dependencies/commons-httpclient-3.1/commons-httpclient-3.1.jar:./dependencies/commons-logging-1.1.1/commons-logging-1.1.1.jar:./dependencies/commons-logging-1.1.1/commons-logging-adapters-1.1.1.jar:./dependencies/commons-logging-1.1.1/commons-logging-api-1.1.1.jar:./dependencies/icu4j-charsets-4_4_2.jar:./dependencies/icu4j-4_4_2.jar:./dependencies/iri-0.5/lib/iri.jar:./dependencies/jetty-6.1.26/lib/servlet-api-2.5-20081211.jar:./dependencies/jetty-6.1.26/lib/jetty-6.1.26.jar:./dependencies/jetty-6.1.26/lib/jetty-util-6.1.26.jar:./dependencies/jetty-6.1.26/lib/ext/jetty-ajp-6.1.26.jar:./dependencies/apache-log4j-1.2.15/log4j-1.2.15.jar:./dependencies/rhino1_7R1/js.jar:./dependencies/xerces-2_9_1/xercesImpl.jar:./dependencies/xerces-2_9_1/xml-apis.jar:./dependencies/slf4j-1.5.2/slf4j-log4j12-1.5.2.jar:./dependencies/commons-fileupload-1.2.1/lib/commons-fileupload-1.2.1.jar:./dependencies/isorelax.jar:./dependencies/mozilla/intl/chardet/java/dist/lib/chardet.jar:./dependencies/saxon9.jar:./jars/non-schema.jar:./jars/io-xml-util.jar:./jars/htmlparser.jar:./jars/hs-aelfred2.jar:./jars/html5-datatypes.jar:./jars/validator.jar:jing-trang/build/jing.jar -Dnu.validator.servlet.log4j-properties=validator/log4j.properties -Dnu.validator.servlet.version=3 -Dnu.validator.servlet.service-name=Validator.nu -Dorg.whattf.datatype.lang-registry=file:local-entities/<a href="http://www.iana.org/assignments/language-subtag-registry">www.iana.org/assignments/language-subtag-registry</a> -Dorg.whattf.datatype.charset-registry=file:local-entities/<a href="http://www.iana.org/assignments/character-sets">www.iana.org/assignments/character-sets</a> -Dorg.whattf.datatype.warn=true -Dnu.validator.servlet.about-page=<a href="http://about.validator.nu/">http://about.validator.nu/</a> -Dnu.validator.servlet.style-sheet=style.css -Dnu.validator.servlet.icon=icon.png -Dnu.validator.servlet.script=script.js -Dnu.validator.spec.microsyntax-descriptions=file:local-entities/<a href="http://wiki.whatwg.org/wiki/MicrosyntaxDescriptions">wiki.whatwg.org/wiki/MicrosyntaxDescriptions</a> -Dnu.validator.spec.alt-advice=file:local-entities/<a href="http://wiki.whatwg.org/wiki/Validator.nu_alt_advice">wiki.whatwg.org/wiki/Validator.nu_alt_advice</a> -Dnu.validator.spec.html5-load=file:validator/spec/html5.html -Dnu.validator.spec.html5-link=<a href="http://www.whatwg.org/specs/web-apps/current-work/">http://www.whatwg.org/specs/web-apps/current-work/</a> -Dnu.validator.servlet.max-file-size=7340032 -Dnu.validator.servlet.connection-timeout=5000 -Dnu.validator.servlet.socket-timeout=5000 -Dnu.validator.servlet.use-local-copies=1 -Dnu.validator.servlet.w3cbranding=0 -Dorg.mortbay.http.HttpRequest.maxFormContentSize=7340032 -Dnu.validator.servlet.host.generic= -Dnu.validator.servlet.host.html5= -Dnu.validator.servlet.host.parsetree= -Dnu.validator.servlet.path.generic=/ -Dnu.validator.servlet.path.html5=/html5/ -Dnu.validator.servlet.path.parsetree=/parsetree/ -Dnu.validator.servlet.path.about=./validator/site/ nu.validator.servlet.Main 80<br>
2012-04-18 13:57:43.723:INFO::Logging to STDERR via org.mortbay.log.StdErrLog<br>nu.validator.servlet.VerifierServletTransaction - Starting static initializer.<br>nu.validator.servlet.VerifierServletTransaction - Starting to loop over config file lines.<br>
nu.validator.servlet.VerifierServletTransaction - Finished reading config.<br>nu.validator.servlet.VerifierServletTransaction - Converted config to arrays.<br>nu.validator.servlet.VerifierServletTransaction - Prepared namespace array.<br>
nu.validator.servlet.VerifierServletTransaction - Parsed doctype numbers into ints.<br>nu.validator.servlet.VerifierServletTransaction - The cache path prefix is: null<br>nu.validator.servlet.VerifierServletTransaction - Parsing set up. Starting to read schemas.<br>
nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/html5.rnc">http://s.validator.nu/html5.rnc</a><br>nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/html5-rdfalite.rnc">http://s.validator.nu/html5-rdfalite.rnc</a><br>
nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/xhtml10/xhtml-strict.rnc">http://s.validator.nu/xhtml10/xhtml-strict.rnc</a><br>nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/xhtml10/xhtml.sch">http://s.validator.nu/xhtml10/xhtml.sch</a><br>
nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/xhtml10/xhtml-transitional.rnc">http://s.validator.nu/xhtml10/xhtml-transitional.rnc</a><br>nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/xhtml10/xhtml-frameset.rnc">http://s.validator.nu/xhtml10/xhtml-frameset.rnc</a><br>
nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/xhtml5.rnc">http://s.validator.nu/xhtml5.rnc</a><br>nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/xhtml5-rdfalite.rnc">http://s.validator.nu/xhtml5-rdfalite.rnc</a><br>
nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/xhtml1-ruby-rdf-svg-mathml.rnc">http://s.validator.nu/xhtml1-ruby-rdf-svg-mathml.rnc</a><br>nu.validator.servlet.VerifierServletTransaction - Will load schema: <a href="http://s.validator.nu/svg-xhtml5-rdf-mathml.rnc">http://s.validator.nu/svg-xhtml5-rdf-mathml.rnc</a><br>
nu.validator.servlet.VerifierServletTransaction - Schemas read.<br>nu.validator.servlet.VerifierServletTransaction - Reading spec.<br>nu.validator.servlet.VerifierServletTransaction - Spec read.<br>nu.validator.servlet.VerifierServletTransaction - Initialization complete.<br>
2012-04-18 13:57:52.147:INFO::jetty-6.1.26<br>2012-04-18 13:57:52.271:INFO::Started <a href="http://SocketConnector@0.0.0.0:80">SocketConnector@0.0.0.0:80</a><br><br>[1]+  Stopped                 python build/build.py --port=80 --local run<br>
[root@vp-w3c-validator12 checker]# netstat -ltunp | grep 80<br>tcp        0      0 :::80                       :::*                        LISTEN      4436/java<br>udp        0      0 <a href="http://0.0.0.0:806">0.0.0.0:806</a>                 0.0.0.0:*                               1054/rpc.statd<br>
<br>[root@vp-w3c-validator12 checker]# wget <a href="http://127.0.0.1">http://127.0.0.1</a><br>--2012-04-18 13:58:14--  <a href="http://127.0.0.1/">http://127.0.0.1/</a><br>Connecting to 127.0.0.1:80... connected.<br>HTTP request sent, awaiting response... ^C<br>
<br>[root@vp-w3c-validator12 checker]# wget <a href="http://127.0.0.1/">http://127.0.0.1/</a><br>--2012-04-18 13:58:19--  <a href="http://127.0.0.1/">http://127.0.0.1/</a><br>Connecting to 127.0.0.1:80... connected.<br>HTTP request sent, awaiting response... ^C<br>
<br>[root@vp-w3c-validator12 checker]# wget <a href="http://127.0.0.1/html5/">http://127.0.0.1/html5/</a><br>--2012-04-18 13:58:33--  <a href="http://127.0.0.1/html5/">http://127.0.0.1/html5/</a><br>Connecting to 127.0.0.1:80... connected.<br>
HTTP request sent, awaiting response... ^C<br><br>[root@vp-w3c-validator12 checker]# wget <a href="http://localhost/html5/">http://localhost/html5/</a><br>--2012-04-18 13:58:49--  <a href="http://localhost/html5/">http://localhost/html5/</a><br>
Resolving localhost... ::1, 127.0.0.1<br>Connecting to localhost|::1|:80... connected.<br>HTTP request sent, awaiting response... ^C<br><br>[root@vp-w3c-validator12 checker]# time wget <a href="http://localhost/html5/">http://localhost/html5/</a><br>
--2012-04-18 13:59:01--  <a href="http://localhost/html5/">http://localhost/html5/</a><br>Resolving localhost... ::1, 127.0.0.1<br>Connecting to localhost|::1|:80... connected.<br>HTTP request sent, awaiting response... ^C<br>
<br>real    0m4.440s<br>user    0m0.002s<br>sys     0m0.003s<br><br>Many thanks,<br><br>Andrei<br><br><div class="gmail_quote">On 18 April 2012 12:07, Michael[tm] Smith <span dir="ltr"><<a href="mailto:mike@w3.org">mike@w3.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Rancid Iodine <<a href="mailto:rancid.iodine@gmail.com">rancid.iodine@gmail.com</a>>, 2012-04-17 17:57 +0100:<br>

<div class="im"><br>
> It's possible to telnet to this service on that port (or indeed whatever<br>
> other port xxx I make the servlet run on using "python build/build<br>
> --port=xxx --local run "),<br>
<br>
</div>You should also be able to open <a href="http://localhost:8888" target="_blank">http://localhost:8888</a> in your browser and<br>
you'll get the <a href="http://validator.nu" target="_blank">validator.nu</a> UI.<br>
<div class="im"><br>
> but the markup validator "front end" seems to have a problem talking to<br>
> the servlet.<br>
<br>
</div>Which front end? The front end is at <a href="http://localhost:8888" target="_blank">http://localhost:8888</a><br>
<div class="im"><br>
> The problem is seen to be a "504 gateway timeout" according to the markup<br>
> validator, and shown thus:<br>
><br>
> External Checker not available<br>
><br>
> Checking the Document Type of this document requires the help of an<br>
> external tool which was either not enabled in this validator, or is<br>
> currently unavailable. Check in the validator's system configuration that<br>
> HTML5 Validator is enabled and functional.<br>
><br>
> The error encountered was: 504 Gateway Time-out<br>
<br>
</div>Ah. Those messages are not coming from the <a href="http://validator.nu" target="_blank">validator.nu</a> backend.<br>
<br>
It seems like what you are doing is, you have an instance of the legacy W3C<br>
validator service installed (either through some package or from the<br>
sources at <a href="http://dvcs.w3.org/hg/markup-validator" target="_blank">http://dvcs.w3.org/hg/markup-validator</a>) and you are trying to<br>
get that to communicate with the separate <a href="http://validator.nu" target="_blank">validator.nu</a> instance you've<br>
built and installed.<br>
<br>
If that's the case I can't help you, because I don't work on that code. The<br>
best places to get help are:<br>
<br>
  <a href="http://lists.w3.org/Archives/Public/www-validator/" target="_blank">http://lists.w3.org/Archives/Public/www-validator/</a><br>
  <a href="http://lists.w3.org/Archives/Public/public-qa-dev/" target="_blank">http://lists.w3.org/Archives/Public/public-qa-dev/</a><br>
<br>
As far as I can see from what you've described, the <a href="http://validator.nu" target="_blank">validator.nu</a> backend is<br>
working as expected. The problem is that your legacy W3C validator instance<br>
is not reaching it for some reason.<br>
<br>
FWIW, I'd recommend not running a legacy W3C validator instance at all.<br>
Just make the front end at <a href="http://localhost:8888" target="_blank">http://localhost:8888</a> available. It's capable<br>
for checking HTML4 and XHTML1 documents, not just HTML5 docs. And it does a<br>
much better job of checking HTML4 and XHTML1 docs than the legacy W3C<br>
validator does.<br>
<div class="HOEnZb"><div class="h5"><br>
  --Mike<br>
<br>
--<br>
Michael[tm] Smith <a href="http://people.w3.org/mike" target="_blank">http://people.w3.org/mike</a><br>
</div></div></blockquote></div><br>