本地网站建设电话,可以接项目做的网站,中国建筑工程机械网,wordpress登陆才能访问目录
前言
背景
解决方法
错误示例 前言
这次是有个两年前的项目吧#xff0c;不知道为什么无法启动了。中间迭代了多个版本#xff0c;现在另一个同事接手了#xff0c;领导让看一下。因为时间间隔过长#xff0c;问题处理比较费劲。其中有的是配置问题#xff0c;比…目录
前言
背景
解决方法
错误示例 前言
这次是有个两年前的项目吧不知道为什么无法启动了。中间迭代了多个版本现在另一个同事接手了领导让看一下。因为时间间隔过长问题处理比较费劲。其中有的是配置问题比较好解决。
中间有个FileNotFoundException的问题困扰了很长时间最后找了个简单法子解决希望给有碰到的网友提供些方法和灵感。报错如下 背景
我用的idea而领导用的eclipse这个无论是哪个用tomcat是没有这个错误的。而使用maven启动就不行原因大致如下
1.当我们使用Maven来运行Spring Boot Application时它默认会从项目的根目录下的 /src/main/resources 文件夹读取资源文件。
2.而当我们使用Tomcat来运行Spring Boot Application时它会从编译过后的 /target/classes 文件夹读取资源文件。
3.最后还发现了在pom文件中有相关创建etc文件夹下的代码关键代码和截图 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-war-plugin/artifactIdversion2.1.1/versionconfiguration!--将类文件打成war包 --failOnMissingWebXmlfalse/failOnMissingWebXml!--将资源文件打到classes目录下 --webResourcesresourcedirectorydata/poem/directorytargetPathWEB-INF/data/poem/targetPathfilteringtrue/filtering/resourceresourcedirectoryetc/directorytargetPathWEB-INF/etc/targetPathfilteringtrue/filtering/resource/webResources/configuration
/plugin 问题流程可以正常启动中间报错也可以但是访问接口就会报错然后自动停止maven启动。如下图 解决方法
1.直接在下面建立一个名为etc文件夹的 2.在IDEA中你可以通过以下步骤设置Maven的工作目录 在IDEA的右侧边栏中打开 Maven Projects 工具窗口。找到你想运行的Maven项目右键点击并选择 Run Maven Build...。在弹出的对话框中找到 Working directory 区域填入你想设置的目录路径比如 之后每次运行该Maven项目时都会使用你设置的工作目录。这样应该就可以解决你的问题了。 提醒一下使用绝对路径可能会导致你的项目在其他环境中无法正常运行。如果可能建议你使用相对路径或类路径来引用资源文件。
思路我们在报错日志中可以明显看到这个是去寻找的绝对路径所以我们如果只是想本地测试的话直接使用上面的办法指定目录即可。
在代码中查到引用了一个包包中的业务逻辑是查询项目下etc文件。因为我使用的时候是21年所以我强烈怀疑是有人后期有改动这个配置的代码地址并且我回滚后依旧无法正常启动。 错误示例
这些下面是我在网上百度是碰到的一些解决方法没有顶用的供大家参考下。
1.修改配置文件的路径 将 data-cloud-service-client.properties 文件移动到你的源代码目录如src/main/resources然后在代码中使用 classpath:data-cloud-service-client.properties 2.使用Spring的PropertySource注解 如果你使用Spring可以用PropertySource注解来指定配置文件的位置。它可以支持文件路径和类路径比如 Configuration
PropertySource(file:E:/Project/unios/unios-skill-bspt/unios-skill-bspt-controller/etc/data-cloud-service-client.properties)
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
} 3.在Maven pom.xml文件中添加资源有可能可以 可以在pom.xml文件中指定额外的资源路径。下面是一个例子 resourcesresourcedirectoryunios-skill-bspt/${project.basedir}/etc/directoryincludesincludedata-cloud-service-client.properties/include/includes/resource/resources 说实话这个bug解决倒是不难难点在于找到bug的源头尤其是多年的老代码真的是全靠自己扣真是太费劲了。 今天就到这里吧感觉有用的小伙伴可以点个赞你的支持就是我更新的最大动力