专业的JAVA编程教程与资源

网站首页 > java教程 正文

idea 导入并配置非标准java web工程

temp10 2024-11-09 13:53:35 java教程 9 ℃ 0 评论


大纲

  1. 新建 java web 项目用于参考配置
  2. 要导入非标准项目工程结构介绍
  3. idea导入java web工程
  4. 一些碎碎念

这是今年接到的另外一个java web 项目 ,也是非 maven标准结构项目,启动项目时花费了不少功夫才配置正确,成功启动

idea 导入并配置非标准java web工程

新建 java web 项目,用于参考配置

新建 java wab ,工程结构如下,此时部署到 tomcat,即可正常启动

javawebdemo
  src
  lib
  out
  web
  	WEB-INF
  		web.xml
  	index.jsp

src 目录下新建 cn.javabus.FirstServlet

1 src 目录下新建 cn.javabus.FirstServlet
public class FirstServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) {
        PrintWriter out = response.getWriter();
        out.println(" FirstServlet ");
        out.flush();
    }
 }   
 
2 配置部署描述文件 web.xml
<web-app>
    <servlet>
        <servlet-name>firstServlet</servlet-name>
        <servlet-class>cn.javabus.FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>firstServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

3 新建 tomcat 
    - edit configuration 
    - 点击+号 add new configuration
    - tomcat -> local
    - 初次添加 tomcat 选择本地 tomcat 所在位置
    - fix 添加部署组件 (xxx:war exploded)

查看out目录下编译输出目录结构

打开 file-> project structure 核对以下配置

project settings: Project ,Modules, Libraries,Facets,Artifacts

Project 
    1 jdk 配置正确
    2 compiler output 路径 ,一般是项目绝对路径/out 目录
Modules
    sources:  mark src 目录 as sources folders
    paths:   勾选inherit project compile output path
    dependencies : 同Libraries
Libraries
    项目依赖的 jar 包引入
    以及 JAVAEE6-JAVAEE6 相关依赖 (tomcate)
Facets 
    Web 
        1 部署描述符 web.xml 目录 ; 项目根目录下 web(webapp)/WEB-INF/web.xml
        2 web Resource Directories ;  项目根目录下 web(webapp)
        3 source root: 源代码存在目录 项目根目录下/src(/java) 
Artifacts
    output Directory: 项目下/out/artifacts/javaweb_war_exploded
    output layout:
        <output root>
        WEB-INF
            classes
               cn...
            web.xml
        'web' Directory contents 

Project 配置示例图

Modules 配置示例图

Facets 配置示例图

Artifacts 配置示例图


要导入非标准项目工程结构介绍

这是今年接到的另外一个java web 项目 ,也是是非 maven标准结构项目,启动项目时花费了一些功夫才配置正确,成功启动

项目工程结构如下,此时部署到 tomcat 无法启动

realtime_ta
  webapp     
    WEB-INF
      lib			 项目依赖 jar 包	
      web.xml  项目部署描述符
  bin					 编译后输出目录
  docs				 文档目录
  META-INF
  src/java		源代码目录


idea导入java web工程

通过 open 方式打开项目.不要使用 idea import eclipse 项目

参考上面成功运行的标准 java web 工程进行配置

project settings: Project ,Modules, Libraries,Facets,Artifacts

主要差异在Facets,Artifacts

## 解决启动报错
- 通过 open 方式打开项目.不要使用 idea import eclipse 项目
    - open 前需要先删除 nakfit.ipr 文件;会导致 open 项目后显示异常
    - open后会提示 检查到 java web 框架 /webapp/WEB-INF/web.xml,点击应用
    - 提示检查到 java EE 应用 /META-INF/application.xml ;取消 不应用
    - project structure 核对以下配置 
        - 参考 idea 新建 java web 项目 
        - project settings: Project ,Modules, Libraries,Facets,Artifacts
    - 配置 tomcat web.xml 只保留 helloServlet 测试先   
- 1 找不到 class  weblogic/utils/NestedException
    - 排除依赖 weblogic.jar (/bin/artifacts/realtime_ta_Web_exploded/WEB-INF/lib 里面存在weblogic.jar时也需要删除)
    - 注释相关错误代码
- 2 只引入 bcprov-jdk15on-1.60.jar
- 3  启动时创建 kcbp 连接
    -  注释 kjaf-dao.xml 的所有 bean

项目部署到 tomcat 后启动成功


对于非 web 工程相关配置相对比较简单,可以参考下面文章

idea 导入并配置非标准maven工程


一些碎碎念

接手到了几个这种非标准化结构的项目,没有使用任何构建工具,在项目启动部署过程中都耗费了不少时间.做个记录备忘吧

最近几个项目中存在类似问题

  • 工程结构不标准
  • 代码臃肿,可读性差 .经常看到 3k,5k,7k 行代码的类,"真累"
  • 代码缺乏设计 可扩展性差, 同事很多是 c++ 转 java 都是面向过程编码 ,封装继承特性都没有用上
  • 敢用应届毕业生,if else 代码堆砌 功能能跑就 ok,东改改西动动 维护起来没有整体性可言

所以在最近的项目中,我都在不停的进行的项目重构,架构调整,代码评审;

可能前几次重构方案评审表现的还不错,几位老大哥就仿佛有意的的把我往老项目上放,让我做方案设计,输出相关方案设计文档,编码落地后面可以看再安排其他人(心里肯定是有不好预感的...);

这次是一个对接某银行的国密签名验证改造,丢了一个新项目地址过来就让我先出版方案,每次都这样不给文档, 搞得我一脸懵. 好不容易扯着他们给讲解讲解任务涉及相关内容,

几天后,输出方案设计后,又说人手不足,果真编码的事情也还是落在我身上了...根据方案文档编码后,要开始验证程序是否正确了.

有点恍惚,代码写完了项目还没跑起来过,这项目跑起来又花费了将近一天时间


同事们使用的是 myeclipse,可我自己已经习惯 idea 开发了,遇到问题也只能自己搞,这些问题也反应了自身对项目构建过程的不熟悉,还是要温故知新啊,

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表