- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在从 STS 创建一个标准的 Spring Boot 1.5.2“Web”项目。如果你运行这个应用程序,你会创建两个目录——普通的“base”目录和一个“tomcat-docbase”目录
. . . 4096 Mar 29 10:00 tomcat.2743776473678691880.8080
. . . 4096 Mar 29 10:00 tomcat-docbase.76291847886629412.8080
如果我将此项目更改为 WAR 项目,我只会获得“基本”目录
. . . 4096 Mar 29 10:06 tomcat.3131223012454570991.8080
使用
很容易覆盖默认的基本目录 server.tomcat.basedir=.
但是这对 tomcat-docbase 没有影响。以编程方式覆盖 tomcat-docbase 是可能的,但看起来像是 hack。
有人认为这是一个错误吗?
最佳答案
解决方法:在您的项目下创建一个名为 public 的文件夹,与您的 JAR 在同一文件夹中。
原因:从springboot代码来看,没有配置docbase文件夹。但是你可以在你的项目文件夹中创建一个公共(public)根文件夹,名称为public、static或src/main/webapp,那么springboot永远不会再次为您创建临时 tomcat-docbase 文件夹。
private static final String[] COMMON_DOC_ROOTS = { "src/main/webapp", "public", "static" }
...
public final File getValidDirectory() {
File file = this.directory;
file = (file != null ? file : getWarFileDocumentRoot());
file = (file != null ? file : getExplodedWarFileDocumentRoot());
file = (file != null ? file : getCommonDocumentRoot());
if (file == null && this.logger.isDebugEnabled()) {
logNoDocumentRoots();
}
else if (this.logger.isDebugEnabled()) {
this.logger.debug("Document root: " + file);
}
return file;
}
...
private File getCommonDocumentRoot() {
for (String commonDocRoot : COMMON_DOC_ROOTS) {
File root = new File(commonDocRoot);
if (root.exists() && root.isDirectory()) {
return root.getAbsoluteFile();
}
}
return null;
}
关于java -/tmp/tomcat-docbase 始终使用 Spring Boot JAR(但不是 WAR)创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43089611/
我正在使用 Tomcat 6.0.18 运行 Eclipse Galileo。 目前,我有一个安装了 m2Eclipse 插件的工作应用程序。它部署到 Tomcat,我可以测试我的应用程序。 我想切换
是否可以在文档库中使用通配符,如下例所示?如果没有,是否有解决方法? 最佳答案 没有。 一些注意事项: 不要输入进入server.xml 当你没有在 server.xml , path属性不合法 如
如果这是一个糟糕的问题,我深表歉意,但我正在使用 Windows 并寻找是否有一种方法可以通过 Tomcat 运行网络应用程序,其中 docBase 是多个文件夹。 更多的背景是我们的 Eclipse
这是我的 webapp 上下文文件,/etc/tomcat6/Catalina/localhost/ri.xml 但是,Tomcat 提示: INFO: Deploying configurati
我有一个 docBase(备用 docroot),它包含很多我没有包含在 war 文件中的静态内容。但是,TomEE 的 Bootstrap 代码会扫描 docBase 目录以查找 jar 文件和其他
我需要在我的 webapp 之外上传文件,并可能在浏览器上提供这些文件。所以在看了很多帖子之后,我决定创建一个符号链接(symbolic link)。我有一个问题,因为我已经在 tomcat5/Cat
我使用的是tomcat 7.0.22 我希望 URL:127.0.0.1:8080 指向位于项目文件夹下的我的 Web 应用程序,而不是 127.0.0.1:8080/Project/ 所以我在ser
我在 Ubuntu 上配置 Tomcat 9 时遇到问题。我在 Tomcat 下部署了 1 个应用程序。创建 SSL 并将 HTTP 重定向到 HTTPS。例如我的应用程序名称 - 例如 :)所以我有
我尝试在 server.xml 中添加一个新的文档库,以便在我的 tomcat 服务器中定义一个上传目录。 Hoever 如果我将它添加到我的独立 tomcat 服务器,它就像一个魅力: 但在我的本
有谁知道如何在嵌入式 Tomcat 实例中设置上下文以从不在已部署文件夹中的本地目录提供文件? 在标准的 server.xml 中,它看起来像这样: 我尝试了以下 tomcat 嵌入式调用的不同变体
我不是 tomcat 的大用户,但我们的项目目前正在使用它。我们已经提交了一个位于 CATALINA_HOME\localhost 中的 .xml 配置文件,但它的更新相当频繁。我更愿意将该文件从我们
当我尝试通过 server.xml 访问数据源并将 docbase 设置为我的应用程序时。它工作完美。但是,如果我尝试通过 docBase=root 和 path=""访问相同的内容,则无法访问它。我
Tomcat 可以使用这两种类型 - 或者直接从 app.war 文件中使用: 或者 - 使用目录,从解压的 WAR 文件创建: 问题是 - 有什么区别
我将 war 文件放在共享驱动器上。我在我的 tomcat ...\conf\Catalina\localhost\myapp.xml 中设置了 docBase,如下所示: 当共享驱动器启动时,tom
我无法在 JSP 中显示用户上传到本地服务器 (D:\fichiers) 的图像,使用纯 Jee(无 spring)、Tomcat 9、intelli-j idea。 我已经尝试了我能找到的一切: 我
如何配置在 Spring Boot Gradle 中?我通常在外部tomcat的server.xml中配置它,如何通过@Configuration文件或application.properties配置
我正在开发一个需要上传用户图像的简单 Java 网络应用程序。 首先,我使用了getServletContext().getRealPath() .但是后来有人建议,这不是一个好方法,因为在重新部署应
我对使用 tomcat apache 7.0 很陌生。 我已经安装了位于以下位置的 tomcat:C:/Program Files/Apache Software Foundation/Tomcat
我已经解决了这个问题,但它可能会帮助那些偶然发现这个问题的人。过去,Stackoverflow 在看似晦涩难解的 IT 问题上为我节省了无数时间。 这是我在 Windows 上将 WAR 文件部署到
我正在从 STS 创建一个标准的 Spring Boot 1.5.2“Web”项目。如果你运行这个应用程序,你会创建两个目录——普通的“base”目录和一个“tomcat-docbase”目录 . .
我是一名优秀的程序员,十分优秀!