• 本地跑 spark ui 报错


    java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z
    at org.spark_project.jetty.servlets.gzip.GzipHandler.handle(GzipHandler.java:484)
    at org.spark_project.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
    at org.spark_project.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.spark_project.jetty.server.Server.handle(Server.java:499)
    at org.spark_project.jetty.server.HttpChannel.handle(HttpChannel.java:311)
    at org.spark_project.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    at org.spark_project.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
    at org.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.spark_project.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Thread.java:745)
    16/11/08 21:37:43 WARN HttpChannel: Could not send response error 500: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z
    

    jar包冲突导致的无法访问的问题

    <dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>javax.servlet-api</artifactId>

    <version>3.0.1</version>

    </dependency>

    将这个依赖放在pom文件的第一行,解决问题

    解决ui能访问问题之后又发现了另一个问题,就是点击

    点击executors无法访问,开始以为是 jax-sr 1.0 和jax-sr 2.0的问题.

    初步像网上一样怀疑是

    <dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0.1</version>
    </dependency> 的jar 冲突

    经过排查maven 依赖的问题之后,发现我的本地依赖只有一个 2.0 没有jax-sr 1.0 协议的jar 

    漫漫之路,在网上搜啊搜,总算找到一篇博客可以解决这样的问题

    http://data4q.com/2017/10/30/%E8%A7%A3%E5%86%B3jersey-2-x-jersey-1-x%E5%86%B2%E7%AA%81%E9%97%AE%E9%A2%98-uribuilder%E9%97%AE%E9%A2%98/

    就是加入以下jar

    <dependency>
              <groupId>javax.ws.rs</groupId>
              <artifactId>javax.ws.rs-api</artifactId>
              <version>2.0.1</version>
          </dependency>
          <dependency>
              <groupId>org.glassfish.jersey.core</groupId>
              <artifactId>jersey-server</artifactId>
              <version>2.23.1</version>
          </dependency>
          <dependency>
              <groupId>org.glassfish.jersey.containers</groupId>
              <artifactId>jersey-container-servlet-core</artifactId>
              <version>2.23.1</version>
          </dependency>
    

      启动本地spark 应用程序总算可以正常的访问 executors了.

    
    
  • 相关阅读:
    160-三个用户同时登录,是怎么实现多线程的?
    159-如何解决缓存穿透?
    158-为什么会引发缓存穿透?
    存储emoji表情,修改字符集为utf8mb4
    java相差小时数
    pom.xml解释
    前端 跨域
    java 获取的是本地的IP地址
    是否超时
    发送验证码
  • 原文地址:https://www.cnblogs.com/bj-xiaodao/p/10615409.html
Copyright © 2020-2023  润新知