微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jqassistant-maven-plugin:无法将浏览器连接到嵌入式 Neo4j

如何解决jqassistant-maven-plugin:无法将浏览器连接到嵌入式 Neo4j

注意:已经有类似的问题,但解决方案不适用于 jqassistant-maven-plugin。

我在一个新的客户端站点上遇到了一个问题,我想使用 jqassistant-maven-plugin (1.10.0) 查看 JQAssistant 扫描的 Neo4j 内容

运行 mvn jqassistant:scan jqassistant:analyze jqassistant:server 将启动并嵌入 Neo4j,扫描我的 Maven 项目的内容,并保持嵌入的实例打开,以便我可以通过 http://localhost:7474/ 访问它

尝试在浏览器中登录(使用 bolt 协议)时,我遇到了连接问题。

ServiceUnavailable: WebSocket connection failure. Due to security constraints in your web browser,the reason for the failure is not available to this Neo4j Driver. 
Please use your browsers development console to determine the root cause of the failure. 
Common reasons include the database being unavailable,using the wrong connection URL or temporary network problems. If you have enabled encryption,ensure your browser is configured to trust the certificate Neo4j is configured to use. 
WebSocket `readyState` is: 3

我以前从未用这个工具见过这样的事情。我发现的唯一资源是 this documentation 说应该更改 listenAddress。

基本上 JQAssistant 的配置与往常一样,除了 embeddedListenAddress

<plugin>
  <groupId>com.buschmais.jqassistant</groupId>
  <artifactId>jqassistant-maven-plugin</artifactId>
  <version>${jqassistant.version}</version>
  <executions>
    <execution>
      <id>default-cli</id>
      <goals>
        <goal>scan</goal>
        <goal>analyze</goal>
      </goals>
      <configuration>
        <warnOnSeverity>INFO</warnOnSeverity>
        <failOnSeverity>MAJOR</failOnSeverity>
        <embeddedListenAddress>0.0.0.0</embeddedListenAddress>
      </configuration>
    </execution>
  </executions>
</plugin>

有人有过类似的经历吗?在我看来,浏览器中的一些公司设置(所有这些都可用)正在阻止 websockets。有没有解决的办法。我目前唯一的解决方法是使用专用的 Neo4j 实例,这会使开发设置复杂化,我想避免这种情况。

进一步分析:

查看浏览器端口,显示正在监听

netstat -a | findstr 7474
  TCP    0.0.0.0:7474    
  TCP    [::]:7474

另一方面,螺栓端口不可用

netstat -a | findstr 7687

解决方法

设置 <embeddedBoltPort>45856</embeddedBoltPort>(任意大的数字)后,我终于可以连接了。由于某些原因,端口不允许出现,即使将其更改为常用的 8080 等也不起作用。

我不明白为什么会这样,因为没有使用端口。测试使用过的端口时,会出现正确的异常,表明它已在使用中。 我只能假设客户端有一些奇怪的安全设置

我对 jqassistant-maven-plugin 的唯一建议是测试所有必需的端口是否已启动并运行,即使在启动期间没有发生异常。

感谢任何人分享想法来追踪这一点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。