这两天突发奇想下载了Intellij Idea,准备体验下这个传说中很强大IDE。工具下载就不多说了,网上一搜便知,博主是直接从Intellij官网下载的最新完整版,可惜的是只能使用30天,不过也差不多,废话就不多说了,进入正题。

  使用Intellij Idea 开发一般都用maven构建项目,首先从maven官网现在最新版,然后就是配置maven到系统环境变量,具体操作不细说了,问某度。

  在Intelli Idea中配置maven,基本步骤:打开Idea,菜单File->setting打开属性配置窗口,然后设置maven,最后,Apply->OK结束配置。

  Idea中项目和eclipse是有所不同,Idea里面的project相当与eclipse中workspace,Moudle相当于project。创建maven项目的过程大同小异,具体步骤博主就不一步一步细说了,毕竟现在网络时代信息共享的很好,大家可以参考http://www.cnblogs.com/jifeng/p/4658765.html,里面写的还蛮详细。

  接下来要总结下博主这次Idea之旅。

目标是搭建一个springmvc的demo,在经历了创建工程、引入依赖、编写代码、配置项目,最后发布项目过程真是一波三折啊!

  问题1.

    Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class。

咋一看不知所以啊,仔细看发现和asm包有关,检查依赖配置,发现pom配置的asm的jar是3.1.4,其他包是3.2.4。或许是版本问题,但是asm没有3.2.4的版本,经查资料,spring-asm-3.1.4里的ClassVisitor是abstract interface。spring-core-3.2.4里的ClassVisitor是abstract class,所以产生了冲突。

博主的解决办法是直接去掉asm包,原因是core 3.2.4已经重新讲asm打包进去了。

问题2.

  java.lang.ClassNotFoundException: org.apache.jsp.login_jsp

  这个异常很明显么,jsp没有编译成功,但是经过详细检查后发现,jsp没有问题,再说jsp页面没有任何逻辑,页面也不会出什么错误,再确认编码方面不会出现错误后,就开始从项目配置方面着手,首先检查javaee方面的配置,检查web.xml发现是2.x的:

突然想到之前在pom里面配置了jsp-api,然后果断去掉pom里面的依赖配置,运行异常没有了。

  关于这个问题,应该是web.xml里面设置的版本和引入的jsp-api.2.0起冲突了,如果web.xml中该为3.0该问题同样也可解决。

  上面是遇到的两个小问题记录下,另外对于Idea这个编辑器,博主感觉如果熟悉了使用起来还是挺方便的,不过刚从eclipse转过来可能需要适应一段时间,还是有一定的学习成本的。

  最后说一下发布项目时这个窗口,在eclipse里面只有一个console,Idea里面有三个,如图,1是服务器的启动情况,2是项目运行情况,3是tomcat的运行情况。项目启动后异常出错了,只会在1窗口显示基本异常提示,具体异常信息是在2窗口抛出显示的。希望这一点能帮助第一次使用的同学。

Intellij Idea搭建java web项目(问题总结)的更多相关文章

  1. Mac下Intellij IDea发布Java Web项目详解五 开始测试

    测试前准备工作目录 Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intell ...

  2. 使用MyEclipse搭建java Web项目开发

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成 ...

  3. 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)

    首先.在開始搭建MyEclipse的开发环境之前.还有三步工具的安装须要完毕,仅仅要在安装配置成功之后才干够进入以下的java Web项目开发环境的搭建. 1.安装工具 第一步,下载并安装JDK,到官 ...

  4. 26.使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及时显示修改后的页面

    转自:https://blog.csdn.net/yuxxz/article/details/51318908 使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及 ...

  5. 使用intelliJ IDE开发java web项目

    <!-- spring版本号 --> <spring.version>4.3.0.RELEASE</spring.version> <!-- mybatis版 ...

  6. IntelliJ IDEA新建JAVA WEB项目(转载)

    IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本控制工具(git.svn ...

  7. 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用

    准备 JDK       (配置JDK_HOME\bin   和 CLASSPATH)   注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本)     对于我们新手来说,JD ...

  8. Myeclipse 搭建Java Web 项目 《一》

    今天将图文并茂的介绍如何使用myclipse 创建Java Web 项目;我使用的是myclipse 8.6 来进行创建: 1.打开Myeclipse,点击File --->然后New ---- ...

  9. Docker学习笔记之搭建 Java Web 项目运行环境

    0x00 概述 Java Web 泛指以 Java 程序为基础向外提供 Web 服务的技术及相关工具,狭义上来说,我们也可以说 Java Web 是由 Servlet 程序提供的 Web 服务. 对我 ...

随机推荐

  1. MySQL查看索引、表信息、触发器

    查看索引: select * FROM information_schema.TABLE_CONSTRAINTS ; select * FROM information_schema.TABLE_CO ...

  2. hdu_1429_胜利大逃亡(续)(BFS状压)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 题意:迷宫的加强版,迷宫里有钥匙和门,问在指定的时间下能否逃出 题解:用二进制位来记录是否有该门 ...

  3. allocator 类

    allcator是一个模板类 定义在memory头文件中,将内存分配与对象构造分开,分配的内存是原始的.未构造的 一.how to use 因其实一个类,则使用allcator时需要首先声明一个类对象 ...

  4. 第13章 Swing程序设计----JFrame窗体

    JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些Swing组件的容器. 在开发应用程序时可以通过继承java.swing.JFrame类创建一个窗体,在 ...

  5. .Net日期处理之格式化

    一.默认格式 2015/9/3 9:04:31 二.格式2 2015年9月3日 9:28:51 三.格式3 2015年9月3日 9:31 四.格式4 2015/9/3 9:39:01 五.格式5 20 ...

  6. struts2的工作原理

    在学习struts2就必须的了解一下它的工作原理: 首先来看一下这张图 这张工作原理图是官方提供的: 一个请求在Struts2框架中的处理大概分为以下几个步骤 1.客户端初始化一个指向Servlet容 ...

  7. java获取数据库的列名、类型等信息

    当你使用和学习JDK的时候,可以查看并学习它所提供给你的两个ResultSetMetaData 和DataBaseMetaData类的源码并很好的了解它们的实现原理和思路,JDBC中提供有两种源数据, ...

  8. Android NDK and OpenCV Development With Android Studio

    Android NDK and OpenCV Development With Android Studio Hujiawei 172 2014年10月22日 发布 推荐 0 推荐 收藏 4 收藏,5 ...

  9. python顶级执行代码

    只有主程序中由大量顶级执行代码(即没有被缩进的代码行),所有其他被导入的模块只应该又很少的顶级执行代码. 如果模块是被导入,__name__就是模块名. 如果模块是被直接执行,__name__就是__ ...

  10. Tiny210编译和烧写u-boot步骤

    当有多个交叉编译器是,不方便设置环境变量时,可以在编译命令中指定交叉编译器,具体如下: make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/ ...