我正在创建一个基于tomcat/jsp的WAR spring boot 2.0.4可执行文件,它在使用bootWar gradle target时运行良好。但现在我想加载本地外部jar,而WarLauncher不支持这一点(有什么原因吗?)。所以我通过以下方式切换到PropertiesLauncher:
bootWar {
enabled = true
manifest {
attributes 'Main-Class': 'org.springframework.boot.loader.PropertiesLauncher'
}
}
现在查看生成的war文件,清单中的所有内容看起来都正常,如下所示:
Start-Class: com.mypackage.Application
Main-Class: org.springframework.boot.loader.PropertiesLauncher
现在,我试图找出正确的命令行args来开始这件事,这是一个尝试和错误,但这让我接近终点线:
java-Dloader。path=WEB-INF/lib,WEB-INF/lib,WEB-INF/classes-jar myapplication-4.0.0。战争
所以我基本上看了WarLauncher,并试图通过loader重新创建类路径。路径值而不添加第三方JAR,因为首先我只想启动我的应用程序。
我的应用程序的加载看起来还可以。
现在我想在我的第三方JAR所在的地方添加一个“本地”路径。我想我可以做到:
java-Dloader。path=WEB-INF/lib,WEB-INF/lib,WEB-INF/classes,jar:file:lib-jar-myapplication-4.0.0。战争
因此,添加一个jar:file:lib,它应该意味着我的runnable WAR旁边的“lib”文件夹。但这不管用。还只是在加载程序中添加“、lib”。这条路行不通。
唯一有效的方法是添加完整路径,比如“jar:file:/foo/bar/lib”,但我真的希望它与当前可运行的WAR文件夹相关。
有人能告诉我如何定义扫描JAR的相对本地文件夹吗?
我希望我能帮助其他在PropertiesLauncher和可运行的WAR文件的结合中苦苦挣扎的人,因为它并没有真正的严格要求,除了https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html
回答我自己的问题,但这可能会有所帮助,因为官方文件不是那么好。
如果要包含已定义的JAR文件,可以使用:
-Dloader.path=file:/myfolder/my.jar
如果您想将一个完整的director包含在多个JAR中,可以执行以下操作:
-Dloader.path=file:/myfolder/
(您只需使用file:myfolder使文件夹与WAR相对)
其他变体,如从JAR内部读取,可以通过在https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/PropertiesLauncher.java读取代码来获得
真正有帮助的是调试标志:
-Dloader.path=file:/myfolder/ -Dloader.debug=true
你会得到一个系统。有关PropertiesLauncher类加载问题的详细信息。
我真的很想看看-Dloader。schema=war
标志,它采用war布局而不是JAR布局。这样一来,人们只需要添加自己的路径,而不需要在战争中添加所需的文件夹。
我尝试使用Spring Boot 2.0.2从战争转移到罐子,并且在使用故障安全进行maven测试时遇到了问题。 我看到两种错误: > < li> < code > Java . lang . noclassdeffounderror ,其中列出了我的一个bean类 当我在 IntelliJ 中运行这些测试时,一切正常,但它们在 maven 中失败。与此同时,当我回到建立战争而不是罐子时,一切都有
问题内容: 我试图从战争档案中读取文本文件,并在运行时将其内容显示在facelets页面中。我的文件夹结构如下 +战争档案> +资源> +电子邮件> + file.txt 我尝试使用以下代码读取resources / email / file.txt文件夹中的文件 但是问题是当我运行上面代码的方法时,会抛出A。我也尝试使用以下代码行获取文件,但未成功 我仍然得到。这是怎么引起的,我该如何解决? 问
问题内容: 我需要能够读取jar文件中文件的内容(例如MANIFEST)。目前,我是通过提取文件的内容,然后列出它来完成此操作的 是否可以使用一个衬管来执行此操作而不提取内容物? 问题答案: 这是你想要的? 请在此处查看先前的答案。
我有一个Spring reactive示例应用程序,它是从Spring Webflux文档中提供的一个示例修改而来的。该应用程序的分支以传统方式使用Spring Boot,并带有嵌入式应用服务器(Netty)。它工作得很好。 在Liberty分支中,我试图将应用程序构建为WAR,并将其部署到Websphere Liberty Profile。除了对构建过程的更改之外,最重要的代码更改是让我的(此处
1984年1月,Richard Stallman 辞去了 MIT 的工作,他担心 MIT 会要求产品的所有权,会给产品强加入自己的销售条件,最终又会成为专有软件。一开始, GNU 计划只有他一个人。他发现自己原来在人工智能实验室的办公室,还没有分给其他人用时,他就每天晚上溜进去工作。久而久之,白天他也跑去用实验室里的电脑。 当时人工智能实验室主任 PatrickH. Winston 并不干涉。因为
我完成了关于Codewars的Kata,这是乘法持久性方法。对于那些没有意识到挑战的人,情况如下: 该函数接受一个正参数 num 并返回其乘法持久性,即您必须以 num 为单位乘以数字直到达到一位数的次数。例如: 我的解决方案使用了两个while循环(下图)。我现在正在尝试使用递归编写方法。然而,我发现我可能会遇到线程问题(因为我需要返回乘以数字的次数)。是否可以使用递归?如果是,怎么办? 这是我