IDEA 导入别人的javaweb项目进行部署

news2024/11/18 13:31:37

前言

我主要是进行java的springboot项目和vue项目的开发,但是架不住在这些框架兴起之前,公司内部已经是有其他的老的框架,我需要在这些老的框架进行修改和调整代码。原本我是使用的eclipse软件进行部署,也比较简单;

但是我遇到了一个怎么也解决不了的问题,没有报任何错误,但是tomcat怎么也启动不起来。总是报encountered problem这样的提示问题。

我不部署任何项目,直接启动本机的tomcat,是能够直接跳转访问到tomcat的管理界面,但是在eclipse一直启动不起来;我搜索的几乎所有的结果,都是说它eclipse配置tomcat会进行重定向,需要把eclipse配置的tomcat的server.xml里的<Context></Context>标签的内容注释掉或删除掉,才能够不会报错。

但是这边又有一个问题,删除之后确实能够启动tomcat了,我导入的javaweb项目是通过访问index.jsp进行访问项目,发现该配置的都配置了,硬是没有编译成功,没有把主入口编译出来,无法访问到我需要访问的项目。

ps:我有在第一次配置成功,可以访问,但是项目出现问题;第二次配置的时候就出现上面的情况

折磨了我很久,于是我打算使用idea进行配置javaweb项目;也折腾了很久,为了以后方便,把我这次使用idea配置javaweb的过程记录下来。

准备工作

IDEA

安装IDEA,这个是就不需要多说了,不过虽然版本一般不会影响配置javaweb,但是防止版本不一致部分操作可能不同,还是发出我使用的IDEA版本
我的IDEA版本为: IDEA 2021.1.3

tomcat

首先,你本机一定需要下载一个tomcat,版本无所谓都是可以的。然后记住你下载tomcat存放到本机的位置。如我的在D盘

D:\software\tomcat\apache-tomcat-9.0.54

在这里插入图片描述
在这里插入图片描述

jdk

同样,你的本机需要下载安装jdk,这边有一点很重要,
配置javaweb,里面的jdk版本一定要跟着javaweb项目来。
我的jdk路径同样也是在D盘

D:\software\jdk

在这里插入图片描述

javaweb结构

以下贴出我导入前的javaweb项目结构
以我的项目名称:HRMS
在这里插入图片描述
然后进行导入到idea
点击 File--->Open
在这里插入图片描述
找到你的本地的javaweb项目,点击OK即可
在这里插入图片描述
然后它提示我是否打开新窗口打开项目,选择是New Window
在这里插入图片描述
导入后的项目结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这些就是我项目中的结构了,但是我们很多文件都不需要看,
配置文件你最主要的是需要看WebContent--->WEB-INF文件
配置文件你最主要的是需要看WebContent--->WEB-INF文件
配置文件你最主要的是需要看WebContent--->WEB-INF文件
重要的事情说三遍!!!

此外,还有一个很重要的事情,万一,你的IDEA没有识别出你的javaweb项目的src是java代码
需要标注src文件夹为资源文件(即src文件夹不是蓝色)
对src文件夹鼠标右键----》Mark Directory as ----》 Rources Root
在这里插入图片描述

配置JavaWeb项目

接下来是重头

project Structure…

点击File ---> project Structure...
打开项目配置界面
界面为
在这里插入图片描述

project Structure… --> Project

里面的Project界面需要配置两个,一个是Project SDK,一个是Project language level
SDK即jdk, language level即jdk版本
导入本机配置好的jdk(这里不额外教学idea配置jdk,详情百度,如果没有的话)
选择对应javaweb项目的jdk版本
一般大部分javaweb项目版本都是jdk1.8,和我的一样也是OK的

我的为:
在这里插入图片描述

SDK 1.8 version

language level 8 -Lambdas,type annotations etc.

project Structure… --> Libraries

可以看到我这边并没有直接配置Modules,而是先Libraries
在这里插入图片描述

这个是java代码需要的依赖包,如果你有写过Maven项目或者说是Springboot项目,和在pom.xml引入依赖的原理是一样的。
初始为上图,什么内容都没有,为空;
然后我们点击加号+
选择java引入
在这里插入图片描述
在我的项目中,只有在webContent--->WEB-INF ---> lib文件夹下才有对应的jar包,所以我只需要引入这个地方的jar包即可。
如果你的项目中有别的文件夹也有jar包,需要一并引入
在这里插入图片描述
点击OK,然后会提示
在这里插入图片描述
Library 'lib' will be added to the selected modules
意思是是否将引入的这个包引入到modules模块,也就是我跳过的地方
引入modules,也意味着,它是会引入到整个项目的配置,
我们选中,然后点击OK即可
在这里插入图片描述

project Structure… --> Modules

这个时候我们再回过头看看modules界面
抛开刚刚引入的lib
剩下的为初始界面
在这里插入图片描述
同样,我们来看看Modules--->Sources
在这里插入图片描述
以及Modules--->Paths
在这里插入图片描述
Sources里代表的是我们整个项目的资源情况
Paths 进行配置导包的操作,一般情况下,javaweb导包是会生成war,tomcat进行启动。
这里Modules我们什么都不需要操作,只给大家说明作用。

project Structure… --> Facets

Facets
初始界面为:
在这里插入图片描述
初始是空白的状态,什么都没有。它的作用就一个:
让IDEA知道这个项目是什么项目,知道需要怎么去运行这个项目,配置框架
我们这个项目是javaweb项目,自然而然需要配置为web框架
点击加号+,选择web
在这里插入图片描述
同样也会提示一个提示
在这里插入图片描述
Web facet will be added to selected module

它的意思是是否将web框架添加到选择的module模块
同样我们,选中项目module,选择OK

接下来一步非常重要
接下来一步非常重要
接下来一步非常重要
在这里插入图片描述
假如你现在点击Apply应用配置的话,你会发现,项目会多出一个文件夹web
在这里插入图片描述
但是只到这里的话,该操作
默认给你创建一个新的web项目,
而不是将你导入的javaweb项目标记为web项目,
所以我们需要更改配置。

Facets ---> Type
选中,点击画笔,修改
在这里插入图片描述
将该配置映射到我们导入的javaweb项目的web.xml
在这里插入图片描述
即选择自己导入项目的WebContent -- > WEB-INF ---> web.xml文件
点击OK
在这里插入图片描述
继续点击OK

Facets --> Web Resource Directory
选中,点击画笔,进行修改
在这里插入图片描述
将其选择自己项目中的WebContent 文件夹,点击OK
在这里插入图片描述
继续点击OK
在这里插入图片描述
点击Apply应用即可

这里,它提示
'Web' Facet resources are not included in any artifacts
也就是进入到我们的下一个配置
Artifacts

project Structure… --> Artifacts

打开Artifacts
初始为
在这里插入图片描述
也是空白,我们同样点击加号+
然后选择Web Application:Exploded --> From Modules
在这里插入图片描述
同样弹窗提示
在这里插入图片描述
提示
select modules will be included in the created artifact with all dependencies

意思是是否将选择的模块包含在创建的组件(artifact)中,并包含所有依赖项

我们也是选中module点击OK
在这里插入图片描述

以上我们的javaweb项目的配置都ok了,
不要忘记点击Apply进行应用配置!!!
不要忘记点击Apply进行应用配置!!!
不要忘记点击Apply进行应用配置!!!

配置tomcat

接下来我们配置最后一步,配置tomcat
在这里插入图片描述
点击Add Configuration添加配置
出现界面如下
在这里插入图片描述
然后我们点击加号+
找到tomcat,
选择local 本机
在这里插入图片描述
然后界面为:
在这里插入图片描述
一般情况下,你如果没有配置过tomcat
Application server一栏是空的,我们需要点击右边的Configure...进行找到我们下载到本地的tomcat
在这里插入图片描述
找到tomcat目录
在这里插入图片描述
以下截图为配置好之后的tomcat
在这里插入图片描述
这里之后一共需要注意四点
在这里插入图片描述
Application server: 配置本机tomcat
URL: 运行项目的主url
HTTP port:运行项目的端口
Warning:No artifacts marked for deployment:提示需要将运行项目的artifact进行配置
上述我们已经配置完成了,可以点右边的Fix自动添加
也可以点Deployment手动添加
在这里插入图片描述
在这里插入图片描述
最后同样也不要忘记Apply应用

大部分项目到这里已经可以直接运行了,点击三角运行即可
在这里插入图片描述

但是我的项目还不行,出来了各种问题,于是下面我来讲一下我的解决过程

遇到问题处理

我遇到的问题不代表全部解决方案,毕竟代码这种东西总会出来各种稀奇古怪的问题。有问题不是我这边总结发的可以评论出来,如果我知道会更新文章出来

缺失jar依赖

这种情况下,就需要引入对应的jar包
如果是常用的jar我推荐一个maven库,直接从里面下载jar进行引入,如果我给的maven库没有对应的jar包下载,那么你需要另外找库进行下载


mvnrepository库


除了上述常用的jar包出现之外,我还遇到如下问题
在这里插入图片描述
java: 程序包javax.servlet不存在
这个我通过查找百度,实际上是tomcat的依赖jar包,只需要引入本地的tomcat的servlet-api.jar包即可

同样打开Project Structure配置,打开Lbraries界面
点击右边已经引入的加号,继续引入
在这里插入图片描述
找到tomcat的依赖包servlet-api.jar
注意我的本地的对应依赖包路径为

D:\software\tomcat\apache-tomcat-9.0.54\lib\servlet-api.jar

在这里插入图片描述
同样不要忘记Apply应用

此外,我还遇到一个
在这里插入图片描述
该jar包同样通过百度查找也是tomcat的依赖,需要引入tomcat的jasper.jar
步骤和上面相同
在这里插入图片描述

未找到jar对应方法

另外,如果遇到引入的jar没有问题,但是对应的方法爆红,那么很大可能是由于jar版本不兼容,
这种情况,我通过查找百度得知我遇到的那个jar,高于多少多少版本的对应爆红的方法被删掉了,然后我一看实际引入的对应jar,确实高出了不少版本,然后我把对应的依赖换成低版本就不报错了。

对应如何替换jar,和配置的Libraries界面操作一样!

项目实际启动结果

以下截图为我项目实际配置好之后启动的截图,(只发出一个入口界面)
在这里插入图片描述

结语

以上为我使用IDEA 导入别人的javaweb项目进行部署
也走了很多弯路,发出来除了作记录,也帮助需要的人进行配置。
再后面如果更新,很大是会在遇到的配置的问题上进行更新,以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/72636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解常见的模拟器及交换机的基本配置

了解常见的模拟器及交换机的基本配置 1. 首先我们先了解常见的模拟器软件 1.Cisco Packet Tracer&#xff08;简单&#xff0c;纯软件实现&#xff09; Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具&#xff0c;为学 习思科网络课程的初学者去设计、配置、排除…

chapter9——电磁兼容性能设计指南

目录1.定义2.电磁干扰理论3.电磁干扰的流程、标准和认证4.影响集成电路抗干扰性能的几个因素5.减少EMC/EMI的技术电子线路易于接收来自其他发射器的辐射信号&#xff0c;无论是有意或无意发射。这些电磁干扰&#xff08;EMI&#xff09;使得设备内毗邻的元件不能同时工作。这时…

58同城首页腰部动态化技术选型(布局动态化)

1. 行业情况 1.1 基本概念介绍 1.1.1 Web混合 Web 前端和客户端的混合开发。使用 WebView 进行页面渲染、逻辑执行&#xff1b;依赖客户端的能力需要通过 JSBridge(通信桥) 的方式进行调用&#xff0c;比如调用客户端的相册、定位、登陆、埋点能力。 1.1.2 小程序 小程序体…

【Redisson源码】可重入锁看门狗机制

【本篇文章基于redisson-3.17.6版本源码进行分析】 为什么需要自动续期&#xff1f; 设想一下&#xff0c;如果我们指定的锁的超时时间是30秒&#xff0c;但是业务执行在30秒内还没有执行完成&#xff0c;此时分布式锁超时过期自动释放&#xff0c;其它线程就能获取到这把锁&…

OpenGL基础图形编程(八)变换

八、OpenGL变换 OpenGL变换是本篇的重点内容&#xff0c;它包括计算机图形学中最基本的三维变换&#xff0c;即几何变换、投影变换、裁剪变换、视口变换&#xff0c;以及针对OpenGL的特殊变换概念理解和用法&#xff0c;如相机模拟、矩阵堆栈等。学好了这章&#xff0c;才开始真…

基于多时间尺度滚动优化的多能源微网双层调度研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

网络套接字编程(TCP协议)

文章目录简单的TCP网络程序服务器绑定服务端监听服务端获取连接客户端连接服务器多线程版本的大小写字母转换服务简单的TCP网络程序 int socket(int domain, int type, int protocol);参数说明&#xff1a; domain&#xff1a;创建套接字的域或者叫做协议家族&#xff0c;也就…

百万基建狂魔们的赛博世界

钉钉完成的&#xff0c;是基于PaaS底座和底层基础产品&#xff0c;与生态伙伴一起提供低代码的普惠化定制开发模式&#xff0c;让大型企业自己可以具备诊断自己的能力和梳理流程的能力&#xff0c;并且将过往的经验和积累进行数字化应用层面的表达&#xff0c;进而寻找出一条最…

ffplay调试环境搭建

前言 ffplay是基于FFmpeg的最简单的官方播放器。麻雀虽小&#xff0c;五脏俱全&#xff0c;虽说ffplay简单&#xff0c;但是各种播放器应有的功能一一俱全&#xff0c;说它简单或许仅仅是因为它只有一个点c文件而已吧。 想要开发一个优秀的播放器&#xff0c;参考是必不可少的&…

Netron可视化Pytorch保存的网络模型

目录 一.理清网络的输入与输出 二. 将模型转换为onnx格式 三.Netron可视化工具 一.理清网络的输入与输出 我自定义的网络模型&#xff08;主要看看前向传播函数即可&#xff09;&#xff1a; import torch import torch.nn as nn#导入数据预处理之后的相关数据 from dataP…

Acrel-EMS企业微电网能效管理平台在某食品加工厂35kV变电站应用-Susie 周

1、概述 该食品加工厂变电站工程规模&#xff1a;电压等级&#xff1a;35/10.5kV&#xff0c;规划主变容量16.3MVA1台8MVA。有一个总配电室&#xff0c;包括35kV开关柜、10kV开关柜和0.4kV配电柜&#xff0c;两个独立变压器室&#xff0c;变压器为干式变压器。35kV供电系统采用…

(2)ITK中迭代器的时间效率

背景 ITK对图像处理中&#xff0c;为了提高代码运行效率&#xff0c;通过迭代器Iterator可以实现对时间的优化。 在ITK的官方文档中也有明确的说明&#xff1a; 针对此说明&#xff0c;本次使用对图像获取最大值最小值的方式&#xff0c;来实验和测试其效率。 代码实现 &am…

JDBC 数据库连接池之Driud

1 数据库连接池简介 数据库连接池是个容器&#xff0c;负责分配、管理数据库连接(Connection) 它允许应用程序重复使用一个现有的数据库连接&#xff0c;而不是再重新建立一个&#xff1b; 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据…

数据安全新战场,EasyMR为企业筑起“安全防线”

2020年1月&#xff0c;时间跨度长达14年的&#xff0c;微软2.5亿条客户服务和支持记录在网上泄露&#xff1b; 同年4月&#xff0c;微盟发生史上最贵“删库跑路”事件&#xff0c;造成微盟市值一夜之间缩水约24亿港币&#xff1b; 今年7月&#xff0c;网信办依据《数据安全法…

PCIEBPMCx4板卡

PCIEBPMCx4本板卡可以使标准的PMC板卡安装于带有PCIE插槽的PC机上使用&#xff0c;安装后占一个槽位&#xff0c;槽位可以为PCIE x4 PCIE x8、PCIE x16&#xff0c;安装后工作在PCIE x4模式。PCIE X1 后开口也可以使用&#xff0c;但只运行在PCIE X1模式。PCIE支持X4 V2.0,板载…

Python对json的操作总结

Json简介&#xff1a;Json&#xff0c;全名 JavaScript Object Notation&#xff0c;是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中&#xff0c;所以对json的各种学习&#xff0c;是自然而然的事情。 J…

C++学习笔记(十四)——vector的模拟实现

vector各函数接口总览 vector当中的成员变量介绍 默认成员函数 构造函数1 构造函数2 构造函数3 拷贝构造函数 赋值运算符重载函数 析构函数 迭代器相关函数 begin和end 容量和大小相关函数 size和capacity reserve resize empty 修改容器内容相关函数 push_ba…

centos8:安装java

一、背景 因为centos 8 安装Jenkins需要java环境&#xff0c;所以本文记录安装java环境过程。 二、环境 开发电脑&#xff1a;Windows 10 CentOS 8.4 64位 三、安装 3.1、java -version检查是否已安装 java -version 没有安装 3.2、检查系统是否自带jdk rpm -qa |grep …

Word控件Spire.Doc 【超链接】教程(1):如何在C#/VB.NET中给Word 文档插入超链接

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

系统移植 uboot 2

一、uboot源码获取 1.1 uboot官网获取 ftp://ftp.denx.de/pub/u-boot/ 前提是是芯片厂家将uboot源码开源到uboot官网上 1.2 ST开发社区获取 https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP1_Developer_Package 1.3 ST官网 https://www.st.com/en/embedded-sof…