Hra*_*ban 5 macos macports w3c-validation tomcat6 unicorn
我经常需要检查尚未公开的网站,因此无法使用公共在线验证器。我尝试使用 MacPorts 在我的 OSX (10.7) 计算机上安装 W3C\xe2\x80\x99s Unicorn(因为我不想处理依赖关系)。不幸的是,Unicorn 安装的文档大多丢失或过时,并且邮件列表看起来已经死了。\n免责声明:我不\xe2\x80\x99不懂 Java。
\n\n这里\xe2\x80\x99是我所做的:
\n\n安装 Tomcat 和依赖项(文档中缺少 ivy,并且\xe2\x80\x99t 不会按预期自动下载):
\n\nsudo port install apache-ant apache-ivy tomcat6 mercurial\nRun Code Online (Sandbox Code Playgroud)选择 Mercurial 的 Python 版本;也许更好地使用 python.org-Python 并在那里安装 Mercurial,但我在这台机器上仅\xe2\x80\x99ve 系统和 MacPort\xe2\x80\x99s Python:
\n\nsudo port select python python27\nRun Code Online (Sandbox Code Playgroud)重启后自动启动Tomcat:
\n\nsudo launchctl load -w /Library/LaunchDaemons/org.macports.tomcat6.plist\nRun Code Online (Sandbox Code Playgroud)将设置添加到.profile:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK\nexport CATALINA_HOME=/opt/local/share/java/tomcat6\nRun Code Online (Sandbox Code Playgroud)检查输出java -version(我的“A”或“Current”中的Java版本已损坏;java -version只是挂起)
修复Java二进制路径;如果没有$JAVA_HOME/bin:
cd $JAVA_HOME; sudo ln -s Commands bin\nRun Code Online (Sandbox Code Playgroud)重新开始
检查tomcat是否运行http://localhost:8080(ok)
获取并编译unicorn:
\n\ncd ~/workspace\nhg clone https://dvcs.w3.org/hg/unicorn\ncd unicorn\nant retrieve compress-css compress-js war cli\nRun Code Online (Sandbox Code Playgroud)在tomcat中安装unicorn:
\n\nsudo cp dist/unicorn.war $CATALINA_HOME/webapps/\nsudo cp WebContent/resources/tomcat_policy/* $CATALINA_HOME/conf/\nRun Code Online (Sandbox Code Playgroud)是的,它有效,但仅适用于公共地址;我们需要改变
\n\nunicorn.properties:ACCEPT_LOCAL_ADDRESSES = trueobservers.properties从http://validator.w3.org/.../*.wadl到 的验证器路径file:///.../*.wadl我可以更改*.properties或$CATALINA_HOME/webapps/unicorn/WEB-INF/classes(更好)更改~/workspace/unicorn/WebContent/WEB_INF/conf。但对后者的更改永远不会进入.war,don\xe2\x80\x99t 不知道为什么。(也许他们\xe2\x80\x99是和平主义者?)如果*.properties.default重命名为*.properties,他们\xe2\x80\x99在发行版中丢失,如果我不\xe2\x80\x99重命名它们,更改将被忽略。我发现了一个在 中包含该conf-path 的提示$CLASSPATH,但这也没有帮助。
因此,我将改编后的配置复制到已安装的 Web 应用程序中,Unicorn 似乎可以运行 - 但验证结果会出现白色页面(状态代码 = 200,但内容长度 = 0)。
在 tomcat\xe2\x80\x99s 错误日志中我只找到(don\xe2\x80\x99t 不知道 \xe2\x80\x99s 是否重要):
\n\nINFO: validateJarFile(/opt/local/share/java/tomcat6/webapps/unicorn/WEB-INF/lib/servlet-api-2.5.jar) - jar not loaded. \nSee Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class\nRun Code Online (Sandbox Code Playgroud)在这期间我尝试了命令行界面是否可用。java -jar unicorn.jar显示一些使用提示,但任何验证都失败
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1\nat org.w3c.unicorn.UnicornClient.main(UnicornClient.java:113)\nRun Code Online (Sandbox Code Playgroud)\n\n我能做些什么?
\n| 归档时间: |
|
| 查看次数: |
1181 次 |
| 最近记录: |