Spring-boot jersey maven 无法运行 war 文件

2023-12-28

我们正在创建一个 spring-boot jersey 应用程序。 现在我们要创建可执行的 war 文件。 问题是当我运行它时应用程序运行良好

  mvn spring-boot:run 

但是当我尝试将其打包为 war 并使用 java -jar ABD.war 运行它时 它给出以下错误

 Caused by: java.io.FileNotFoundException:       /Users/ABC/ABD-0.0.1-SNAPSHOT.war!/WEB-INF/classes (No such file or directory)


 Caused by: org.glassfish.jersey.server.internal.scanning.ResourceFinderException:

这是我正在使用的 pom.xml 部分,

<packaging>war</packaging>
.
.
.

 <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>


        <org.slf4j.version>1.7.7</org.slf4j.version>

        <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>

        <java.version>1.8</java.version>


  </properties>

.
.
.
.
.
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

尽管当我解压 war 文件时,我可以看到 WEB-INF/classes 文件夹就在那里。


好的找到了解决方案。 我有一个球衣配置类,我在其中添加了所有带有 packages() 的控制器类。 当我将其注释掉并将其更改为 register("controller.class") 它开始工作!

    @Configuration
    @ApplicationPath("/path")
    @Controller 
    public class JerseyConfig extends ResourceConfig {
        public JerseyConfig() {
            register(MultiPartFeature.class);
           register(OneController.class);
          //packages("com.controllers");
        }
    }
#

Update

#
private static final Logger logger = LoggerFactory.getLogger(OneController.class);

  public JerseyConfig() {
     scan("com.somepackages");
  }

  public void scan(String... packages) {
      for (String pack : packages) {
          Reflections reflections = new Reflections(pack);
           reflections.getTypesAnnotatedWith(Path.class)
           .parallelStream()
           .forEach((clazz) -> {
              logger.info("New resource registered: " + clazz.getName());
           register(clazz);
      });
 }

}

#

通过此解决方案,您可以通过包扫描获取球衣寄存器中的所有控制器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring-boot jersey maven 无法运行 war 文件 的相关文章

随机推荐

  • 使用 Axios 从 http 响应下载 PDF

    我正在开发一个带有 Laravel 后端 API 的 Vue 应用程序 单击链接后 我想调用服务器来下载某个文件 大多数情况下是 PDF 文件 当我做一个get请求与axios我在回复正文中收到了一份 PDF 作为回报 我想直接下载该文件
  • 如何使用 webpack 分别捆绑供应商和主脚本?

    我真的很感谢这里的一些帮助 在这种情况下 我想在最终的构建操作中将我的供应商 js 和我的 main js 分开 我之前尝试过在我的 package json devDependency 中循环分离我的第三方库并将其放入供应商 js 中 它
  • 强制仅从 DataReader 返回单行

    我似乎在我的代码中写了很多这样的内容 using var reader cmd ExecuteReader if reader Read result new User int reader UserId reader UserName T
  • Git 快进 VS 无快进合并

    Git merge 允许我们执行快进和非快进分支合并 有什么想法何时使用快进合并以及何时不使用快进合并吗 The no ff当您想要清楚地了解功能分支时 选项非常有用 因此 即使在此期间没有进行任何提交 FF 也是可能的 有时您仍然希望主线
  • AWS CloudFormation 用户数据中的 Crontab

    使用 AWS CloudFormation Userdata 时如何设置 crontab 我正在设置 crontab l echo 0 wget O q http www example com cron php crontab 但 cro
  • 如何将“=”附加到字符串

    我正在尝试添加 在我的数组的末尾 然后通过附加 0 来结束它 这就是我分配空间的方式 char postExpr malloc sizeof char MAX LEN 我已经尝试了很多方法 但仍然无法在字符串末尾附加字符 其他每个字符都可以
  • QT C++ 的新手问题 - Qimage 不起作用?

    我正在尝试执行控制台应用程序来从图像中读取像素 include
  • R/Shiny 图不显示在浏览器中

    我最近开始玩Shiny 我试图写一些东西来证明中心极限定理 我的代码如下 ui R ui R file code library shiny shinyUI pageWithSidebar headerPanel Central Limit
  • MYSQL 查询左连接显示一张表中的所有数据

    SELECT A CODE B NOTE C NUMBER FROM A LEFT JOIN B ON A CODE B CODE LEFT JOIN C ON A CODE C NUMBER WHERE C ID B ID 需要显示 3
  • Django 1.5.1 运行测试时出现“ImportError:没有名为 urls 的模块”

    我已经开始使用 Django 1 5 项目 我有以下配置文件应用程序的 URL 视图和测试 When I browse localhost 8000 profiles it works just fine 但是当我对配置文件应用程序运行测试
  • 消失 SmartTabLayout pageViewer 内容

    我正在尝试从这里使用 SmartTabLayouthttps github com ogaclejapan SmartTabLayout https github com ogaclejapan SmartTabLayout 我有一个抽屉
  • ASP.NET MVC - Html.TextBox - 未通过 ViewData 字典设置值

    我在页面上有一个带有 Html TextBox 控件的搜索框 实际上是在部分视图中 但不确定是否相关 该操作方法将 query 作为参数 我编辑该值以清理传入的字符串 public ActionResult SearchQuery stri
  • 如何静态链接 C# 类库的库?

    我正在使用 microsoft 提供的 Dlls 在 c 中创建一个类库 现在我想将 Microsoft 提供的库静态添加到 My Dll 中 我该如何执行此操作 我只是添加了对 Microsoft 提供的 Dll 的引用并创建了 My D
  • 包含非 ASCII 字符的批处理文件

    我需要链接到批处理脚本中包含字符 的文件夹 不过 当我运行脚本时 我遇到了麻烦 命令提示符会误读非 ASCII 字符 我尝试将文件保存为 ANSI 和 Unicode 我运行的是 Windows 7 这是一个最小的例子 echo l 没有使
  • Java:如何输出所有可能的二进制组合(256个不同的序列)?

    我需要创建一个函数来输出所有可能的二进制组合 2 8 256 个不同的 8 位序列 我真的很难过这个 我必须使用嵌套循环来完成此操作 并且不知道如何进行 以下是我到目前为止所尝试的 有人告诉我 我可以使用 8 个嵌套循环来编写这个程序 每个
  • 如何在 Google Cloud Functions 上运行 C++ 文件?

    据我所知 Google Cloud Functions 只允许您部署 NodeJs 或 Python 脚本 问题 我怎样才能部署一个简单的Hello World cpp谷歌云功能 例如 编写一个 hello world HTTP 函数 有哪
  • 如何按时间而不是按大小对 shell 脚本输入进行分块?

    在 bash 脚本中 我使用多生产者单消费者模式 生产者是将行写入 fifo 的后台进程 通过 GNU Parallel 消费者从 fifo 读取所有行 然后排序 过滤并将格式化结果打印到 stdout 然而 可能需要很长时间才能获得完整的
  • cURL:通过代理进行 https

    我需要向 https URL 发出 cURL 请求 但我还必须通过代理 这样做有什么问题吗 我在使用curl和php执行此操作时遇到了很多麻烦 因此我尝试在Python中使用urllib2执行此操作 结果发现urllib2在通过代理时无法P
  • AVAssetReader,如何使用流而不是文件?

    AVAssetReader 非常棒 但我只能看到如何将它与本地资产 文件或我猜的组合一起使用 So assetReader try AVAssetReader asset self asset assetReader addOutput r
  • Spring-boot jersey maven 无法运行 war 文件

    我们正在创建一个 spring boot jersey 应用程序 现在我们要创建可执行的 war 文件 问题是当我运行它时应用程序运行良好 mvn spring boot run 但是当我尝试将其打包为 war 并使用 java jar A