如何为本地URI设置W3C Unicorn验证器?

时间:2012-03-14 14:04:34

标签: macos tomcat6 macports w3c-validation unicorn

我经常需要检查尚未公开的网站,因此无法使用公共在线验证器。我尝试使用MacPorts在我的OSX(10.7)机器上安装W3C的Unicorn(因为我不想处理依赖关系)。不幸的是,Unicorn安装的文档大多缺失或过时,邮件列表看起来已经死了。 免责声明:我不懂Java。

这就是我的所作所为:

  • 将Java更新安装到1.6.0_29(因为Apple的当前版本有内存泄漏)
  • 安装Tomcat和依赖项(文档中缺少常春藤,并且不会按预期自动下载):

    sudo port install apache-ant apache-ivy tomcat6 mercurial
    
  • 为Mercurial选择Python版本;或许最好使用python.org-Python并在那里安装Mercurial,但我在这台机器上只有系统和MacPort的Python:

    sudo port select python python27
    
  • 重启后自动启动Tomcat:

    sudo launchctl load -w /Library/LaunchDaemons/org.macports.tomcat6.plist
    
  • 将设置添加到.profile

    export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
    export CATALINA_HOME=/opt/local/share/java/tomcat6
    
  • 检查java -version的输出(我的Java版本在“A”或“当前”中断了; java -version只是挂起)

  • 修复Java二进制路径;如果没有$JAVA_HOME/bin

    cd $JAVA_HOME; sudo ln -s Commands bin
    
  • 重新开始

  • 检查tomcat是否在http://localhost:8080(ok)

  • 上运行
  • 获取并编译独角兽:

    cd ~/workspace
    hg clone https://dvcs.w3.org/hg/unicorn
    cd unicorn
    ant retrieve compress-css compress-js war cli
    
  • 在tomcat中安装独角兽:

    sudo cp dist/unicorn.war $CATALINA_HOME/webapps/
    sudo cp WebContent/resources/tomcat_policy/* $CATALINA_HOME/conf/
    
  • 是的,它可以正常工作,但仅适用于公共地址;我们需要改变

    • unicorn.properties中的一项设置:ACCEPT_LOCAL_ADDRESSES = true
    • observers.properties中从http://validator.w3.org/.../*.wadlfile:///.../*.wadl
    • 的验证路径
  • 我可以在*.properties中更改$CATALINA_HOME/webapps/unicorn/WEB-INF/classes或在~/workspace/unicorn/WebContent/WEB_INF/conf中更改(更好)。但后者的改变永远不会进入.war,不知道为什么。 (也许他们是和平主义者?)如果*.properties.default被重命名为*.properties,则他们在发行版中会丢失,如果我不重命名,则会忽略更改。我发现了一个提示,要在$CLASSPATH中包含这个conf-path,但这也无济于事。

  • 所以我将经过调整的配置文件复制到已安装的webapp中,并且Unicorn似乎运行 - 但验证结果是白页(状态代码= 200,但内容长度= 0)。

  • 在tomcat的错误日志中我只找到(不知道这是否重要):

    INFO: validateJarFile(/opt/local/share/java/tomcat6/webapps/unicorn/WEB-INF/lib/servlet-api-2.5.jar) - jar not loaded. 
    See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    

CLI

Inbetween我试过命令行界面可用。 java -jar unicorn.jar显示了一些使用提示,但是对任何内容的验证都失败了

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at org.w3c.unicorn.UnicornClient.main(UnicornClient.java:113)

最后

我该怎么办?

0 个答案:

没有答案