Symfony:解析web.xml时出现InvalidArgumentException

最近我将Symfony系统移到了另一台服务器上,从此以后出现了错误。 技术细节是:Windows Server 2012上的apache 2.4服务器apache可以通过本地网络访问的文件服务器

当我移动Symfony页面时,我删除了缓存。 现在发生的是,我得到这些错误消息:

InvalidArgumentException: Unable to parse file "FILESERVERPAGEPATHvendorsymfonysymfonysrcSymfonyBundleFrameworkBundleDependencyInjection/../Resources/configweb.xml".

InvalidArgumentException: [WARNING 1549] failed to load external entity "file://///FILESERVER/PAGEPATH/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd" (in n/a - line 0, column 0)
[WARNING 3084] Element '{http://www.w3.org/2001/XMLSchema}import': Failed to locate a schema at location 'file://///FILESERVER/PAGEPATH/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd'. Skipping the import. (in in_memory_buffer - line 8, column 0)
[ERROR 1845] Element '{http://symfony.com/schema/dic/services}container': No matching global declaration available for the validation root. (in //FILESERVER/PAGEPATH/web/ - line 5, column 0)

什么似乎是问题,在第一个错误,路径中有斜杠和反斜杠的混合,但我不知道如何解决这个问题。


这个问题是由于使用UNC路径( something)造成的。 在另一台服务器上使用IIS和Symfony的Windows网络环境中,我遇到了同样的问题。 不幸的是,我无法找到解决方案。 我结束了在同一台机器上使用本地路径的源代码。

编辑 :我发现了一个更可能的解决方案 - 符号链接。

mklink /d C:myroot FILESERVERPAGEPATH

现在你可以在共​​享文件夹的C: myroot内容下看到。 我不知道Apache是​​否会满意,但IIS没有问题。 还有一件事,为网络传输带来的一些性能问题做好准备。


我不确定这是否与您的问题有关,但是当解析时无法加载模式定义文件时,我曾经遇到解析XML文件的问题。 解析器尝试通过网络加载XML模式文件,如果网络连接失败,解析XML文件也失败。

如果您正在生产中,出于性能方面的考虑,您可能根本不需要模式验证,因此请检查使用的解析器是否提供了关闭自动模式验证的方法。 但是,如果在您的开发工作流程中发生错误,请确保可以从解析XML文件的Web服务器实际解析模式URL。


如果UNC路径是问题,那么将网络共享映射到本地驱动器并使用本地驱动器上的路径访问应用程序时可能会有效。

FILESERVERPAGEPATH到本地驱动器,假设W:来自web W ),然后将Apache的Web根配置为W:web而不是FILESERVERPAGEPATHweb 。 我猜所有其他路径引用是相对的,没有别的需要改变。

(只是一个想法)

更新:

作为普通用户,您可以将网络共享映射为本地驱动器,并通过使用以下命令行使其在每次登录时自动重新连接:

C:> net use W: FILESERVERPAGEPATH /persistent:yes

Apache不能像普通用户那样运行(我手边没有Windows系统,但我认为它以SYSTEM USER身份运行)。 当Windows启动时,我无法分辨特殊用户是否“登录”。

但是,我认为每次Windows启动时都可以使用Task Scheduler(在Windows 7或更新版本上)运行上面的命令(存储在.cmd文件中)。

链接地址: http://www.djcxy.com/p/25165.html

上一篇: Symfony: InvalidArgumentException while parsing web.xml

下一篇: Performance issue with JavaFX LineChart with 65000 data points