前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >引入HBase依赖包带来的麻烦

引入HBase依赖包带来的麻烦

作者头像
幽鸿
发布2020-04-02 13:27:45
8270
发布2020-04-02 13:27:45
举报

在一个项目里用到HBase做底层存储,使用maven来管理相关Jar包依赖,用maven来管理依赖包,特别不爽的就是他会将你引入Jar包自己的依赖都搞进来,经常会出现一些类和方法冲突找不到等状况。这次,也被这个搞了一阵子。我依赖了HBase jar之后,tomcat启动后,访问Web页面(使用JSP)的时候,页面直接抛出一堆异常,贴一下关键的:

代码语言:javascript
复制
java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext
(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
    org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
    org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:80)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:149)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
分析得出就是因为引入了apace的jasper导致的,HBase依赖的tomcat:jasper-compiler和tomcat:jasper-runtime搞得我web页面的JSP访问失败。很自然而然地就得将这个jar从hbase依赖POM里面exclude掉。然后重新打包发布即可。

总结一下:一般遇到这种问题解决思路:

1)通过异常找到关键字,确定冲突的类或者方法

2)使用mvn dependency:tree检查是从哪个依赖的POM里面搞进来的冲突

3)修改项目中POM文件中的依赖,将冲突的exclude掉

4)重新打包部署

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档