Leegorous | 我的梦想飞行器

CAT | 异常杀手

开发中经常用到 maven jetty:run,特别是它支持 多个 webapp 资源目录 的特性,在开发环境中相当有用。比如,src/main/webapp 是 prod 的资源,而有些开发或者测试时用到的资源可以安心的放在 src/test/webapp。可以 参考这里 详细了解怎么使用。

但是,迁移了环境之后,发现它总是报错:

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to configure plugin parameters for: org.mortbay.jetty:maven-jetty-plugin:6.1.22

    (found static expression: 'src/main/webapp,src/test/webapp' which may act as a default value).

Cause: Cannot assign configuration entry 'resources' to 'class [Lorg.mortbay.resource.Resource;' from 'src/main/webapp,src/test/webapp', which is of type class java.lang.String

但是奇怪就在于,在 eclipse 的 maven 插件里面报错,但在命令行执行却没有问题。基于懒人原则,只要有路可走,不深究这个问题。可是当我再一次迁移至 linux 环境下时,命令行报错了。无路可逃的我只好 向 google 求救

经过一番扫描,发现有先行者了,评论将矛头指向 JAVA 的版本以及操作系统,还有提供了一个可以尝试的修改:

<baseResource implementation="org.mortbay.resource.ResourceCollection">
    <resourcesAsCSV>src/main/webapp,src/test/webapp</resourcesAsCSV>
</baseResource>

试之,可行。这是传说中的 maven overloading bug。文中还提到了和 contextPath 的设置有关,敬请留意。
很多小蚜虫

· · ·

系统运行得好好的,不过看不惯McAfee运行几天之后会劫持相当大内存,删之。

重启后发现drupal offsite了,提示说数据库连接问题,请检查settings.php云云。

莫名其妙,之前还运行良好,突然连接不上,应该是外部原因,不过保险起见,检查settings.php,无异样。

头大,尝试用mysql命令连接数据库,居然报告

'mysql' is not recognized as an internal or external command,
operable program or batch file.

再尝试Start菜单里面的MySQL Command Line Client,可用。

难道系统环境变量出问题,一看path,发现一堆疑似迅雷看看造成的重复路径,删之,mysql的bin路径不翼而飞,插之。

重启apache服务器,drupal 依然 off。查看apache access log,最后的启动日志里面有好几行类似于

PHP Warning: PHP Startup: Unable to load dynamic library 'D:\\Program Files\\PHP\\ext\\php_mysqli.dll' - The specified module could not be found.\r\n in Unknown on line 0

报告一堆module无法载入的警告,这些和数据库连接大有关联,大致问题确定,只是不清楚如何解决。

直觉说修改了系统环境变量,应该重启机器,光重启apache可能不够,于是重启。

重启后,发觉问题居然解决了。

原理不确定,大概是由于path设置不当,既造成mysql之类的命令找不到,又导致apache载入module失败。

· · ·

Theme Design by devolux.nh2.me