【问题标题】:Selenium Wire Logs Empty硒线日志空
【发布时间】:2017-12-01 15:13:09
【问题描述】:

我们最近将项目转换为更加模块化。

我们使用 selenium 和 jbrowserdriver 从页面中抓取数据。

我们正在使用 Spring Boot 和 Tomcat。

以前,我们有一个单一的 war 文件,我们将其部署到 tomcat 并打包了所有的类文件。我们在会话期间使用带有线路日志的 jbrowserdriver 来捕获标头,并且效果很好。

但是,我们现在已经分离了一些功能,并且似乎我们在 tomcat 中遇到了不同的类加载器问题。

我们的系统布局如下:

/companyDir
+ -- /libs
| + -- core.jar
| + -- /widgets
| | + -- widgetA.jar
| | + -- widgetB.jar

Tomcat 配置为在其 shared.loader 属性中包含 /libs/*.jar 和 /libs/widgets/*.jar。这些 jar 文件包含在 tomcat 启动中。

然后我们部署一个包含 Spring 依赖项和控制器端点的文件 project.war。

但是,现在当我们调用端点并且端点执行 widgetA.jar 时,线路日志完全是空的。我们在 catalina.out 中看到了线路日志,但调用 driver.manage().logs().get("wire") 显示为空。我不确定如何配置它,以便我们的 webdriver 中的内部日志充满我们显然要返回的线路日志。

我可能只是对类加载器问题感到模糊,因为这似乎是问题所在。

【问题讨论】:

  • 如此深入的挖掘表明,线路日志仍在由 org.apache.http 生成,但是当 LogsServer.java 执行 updateSettings() 以重定向/重新路由 org.apache.commons.logging.Logcom.machinepublishers.jbrowserdriver.WireLog 时,这不是当所有类都从同一个类加载器执行时一样工作。由于 jbrowserdriver 使用 RMI 执行它,我很难理解它是如何正常工作的,尽管它似乎仍然是与类加载器相关的问题。
  • 附加信息:我已经修改了结构,因此我现在使用应用程序上下文来指定我想要包含映射到 /WEB-INF/lib 的 jar,而不是使用 tomcat 的 shared.loader 属性.结果相同。我相信这排除了类加载器问题,并指出它仅从外部 jar 运行。

标签: java selenium tomcat logging classloader


【解决方案1】:

因此,通过使用上下文资源,我们能够重新捕获日志。

在正在部署的 project.war 的 /src/main/webapp/META-INF/context.xml 中,我们可以指定“JarResources”资源并使 jar 可用于同一个类加载器。多田,问题解决了。

这是 context.xml 的布局:

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/ourApp" docBase="/ourApp">
    <Resources>
        <PreResources className="org.apache.catalina.webresources.DirResourceSet"
            base="/path/to/our/configFiles/"
            webAppMount="/WEB-INF/classes" />
        <JarResources className="org.apache.catalina.webresources.DirResourceSet"
            base="/path/to/our/jars/libs"
            webAppMount="/WEB-INF/lib" />
        <JarResources className="org.apache.catalina.webresources.DirResourceSet"
            base="/path/to/our/jars/libs/widgets"
            webAppMount="/WEB-INF/lib" />
    </Resources>
</Context>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 2020-03-27
    • 2011-02-06
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多