当前位置: 首页 > 知识库问答 >
问题:

Fat Jar中的Vertx Webroot

张亦
2023-03-14

我正在为Vertx Web应用程序构建一个胖jar。我想提供一些静态文件。我用webroot文件夹打包了jar文件。有关我的jar结构,请参见下面的屏幕截图:

我能够加载webroot/静态/测试。通过执行以下操作创建html文件:

routingContext.response().sendFile("webroot/static/test.html");

但是,我无法让静态处理程序工作。以下是我的完整代码

package com.jdescript;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.http.HttpServer;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.handler.StaticHandler;

public class WebVerticle extends AbstractVerticle {
    private HttpServer httpServer;

    @Override
    public void start() throws IOException {
        httpServer = vertx.createHttpServer();

        Router router = Router.router(vertx);
        router.route("/static/*").handler(StaticHandler.create());

        router.route("/test").handler(routingContext -> {
            routingContext.response().sendFile("webroot/static/test.html");
        });

        httpServer.requestHandler(router::accept).listen(9999);
    }
}

在上述示例中,http://localhost:9999/static/test.html将显示“未找到”,而http://localhost:9999/test将呈现测试。html。

任何帮助都将不胜感激。

共有1个答案

袁秦迟
2023-03-14

由Vert回答。x组位于https://groups.google.com/forum/?fromgroups#哦!主题/vertx/yKInZuYcqDE。我的webroot应该看起来像“webroot/test.html”,而不是“webroot/static/test.html”。

 类似资料:
  • 我想知道我什么时候该用哪个。我明白它们都集合了所有的依赖类,但是它们彼此之间有什么不同呢?

  • 我正在尝试使用ShadowJar构建一个fatjar。我的应用程序和gradle代码如下。我使用Gradle 5.0进行构建。当我运行./gradlew run时,代码运行正常。当我运行“gradle shadowjar”并使用“build/lib”文件夹中的“java-jar”运行fatjar时,我得到了以下错误。 我猜依赖项没有加载到fatjar中?我还使用Groovy构建了Gradle文件,

  • 我已经为这个问题寻找了4天的解决方案,但没有成功, 首先做正常的Gradle构建任务产生了一个很小的7kB jar文件,显然不起作用,然后我为主类添加了jar配置: 现在是2MB! 仍然不够好,然后我找到了法特加/uberJar/影子任务,据说是同样的事情的同义词,所以我试着在另一个小的RMI应用程序上清理法特加任务,它将在服务器上运行,它工作得很好,将其复制到主应用程序,它产生和60MB jar

  • 问题内容: 我需要从Eclipse Java项目中导出jar,并且要包含引用的库。我不能为此使用fatjar,这是每个人似乎都推荐的。必须有另一种方式来执行此操作。有人知道这是什么吗? 问题答案: Eclipse的下一个版本(3.5,将于明年6月发布)具有包含所有必要jar的选项。它是在3.5M5中引入的。 或者,您可以尝试使用Maven 2构建项目。然后,您可以使用构建一个“胖”罐。 另一种选择

  • 我们有一个这样的项目 公共-模块src-Spring引导工作者-模块 在工作模块中,我们build.gradle这样配置 当我运行任务法特加尔sqlserver: mssql-jdbc丢失时。我试图在{configurations.compile.collect{it.is目录()的这部分代码中打印?it: zipTree(it)}}和“它”从未引用到sqlserver jdbc jar。 由于w

  • 我遇到一个问题,gradle fatJar/uberJar在尝试运行jar时导致以下异常: 简单的jar任务 没有问题(直到它开始需要依赖项)。 我假设这与我的一个依赖项更改类路径有关,但我不确定为什么会发生这种情况。 build.gradle的相关部分 Gradle构建文件在这里(与代码的其余部分): https://github.com/domhauton/membraned/blob/mas

  • 问题内容: 我已使用内置的Gradle支持在IntelliJ(2019.2)中设置了OpenJDK 12项目。为了设计使用JavaFX 12的GUI,我已经阅读并阅读了多次安装指南,在IDE中运行程序没有问题,问题是当我尝试构建要运行的发行版的.jar文件时陷入问题。到目前为止,我还没有找到一个可行的解决方案,而我搜索了很多QUITE,几乎为此扯掉了头发。当前,当我尝试使用java -jar“ j

  • 我试着把我的主类移到一个不扩展Application的单独的类中,这就是导致上述错误的原因。如果不移动我的主类,我会得到一个不同的错误。 My Build.Gradle当前看起来如下所示: 如果我让我的main方法扩展应用程序,那么我会得到一个错误,说明找不到我的main类,尽管我可以看到它存在于生成的.jar文件中。 编辑 我试过指南的模块化部分。这样做,我有超过100个错误时,试图建立。它们都