Spring restController возврат не найден 404 на wildfly - PullRequest
1 голос
/ 18 февраля 2020

У нас есть проект отдыха с Spring RestController, подобный этому:

   @RestController("/new")
   public class NewController {
    @ResponseBody
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public String testControl() {
        return "works";
    }

Но этот проект не содержит загрузочного класса для его запуска. Вместо этого есть внутренняя зависимость jar, которая реализует AbstractAnnotationConfigDispatcherServletInitializer пружинный класс:

public class AbstractWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { AppSecurityConfig.class, DatabaseConfig.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] { ServletContextConfig.class };
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/*" };
    }

    @Override
    protected Filter[] getServletFilters() {
        return new Filter[] { new CORSFilter() };
    }
}

Этот остальной проект скомпилирован в файл .ear для развертывания на сервере wildfly: EAR pom. xml

<plugin>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.10.1</version>
                <configuration>
                    <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
                    <skinnyWars>true</skinnyWars>
                    <version>6</version>
                    <earSourceDirectory>src/main/app</earSourceDirectory>
                    <modules>
                        <webModule>
                            <groupId>br.coop.unimed</groupId>
                            <artifactId>cmb-rest</artifactId>
                            <contextRoot>/api</contextRoot>
                        </webModule>
                    </modules>
                </configuration>
            </plugin>

При развертывании этого уха в wildfly журнал сообщает:

17: 11: 10,033 INFO [io.undertow.servlet] (Пул потоков ServerService - 95) Типы Spring WebApplicationInitializer не обнаружены в classpath 17: 11: 10,620 INFO [io.undertow.servlet] (Пул потоков ServerService - 95) Spring WebApplicationInitializer обнаружен в пути к классам: [org.springframework.boot.autoconfigure.jersey. JerseyAutoConfiguration$JerseyWebApplicationInitializer@8a0cb6a , br. coop .unimed.config.security. SecurityWebApplicationInitializer@457597f, br. coop .unimed.config. AbstractWebInitializer@1c37aaec]

и

17: 11: 23,815 INFO [org.wildfly.extension.undertow] (Пул потоков ServerService - 95) WFLYUT0021: Зарегистрированный веб-контекст: '/ api' для сервера 'default-server'

Но при попытке достичь * 10 28 *: 8080 / api / new / test или http:locallhost: 8080 / api / test, возвращается 404. - Не найдено.

Просто чтобы прояснить, я унаследовал этот проект от другой компании который запускал это ухо на другом сервере, который был weblogi c. Так как weblogi c очень тяжелый, я пытаюсь работать таким же образом на сервере wildfly, но мне это не удалось, несмотря на то, что ухо было успешно развернуто на сервере, и контекст весны также правильно зарегистрирован.

Кто-нибудь знает, что может происходить?

1 Ответ

0 голосов
/ 19 февраля 2020

Пожалуйста, измените ваш код на

@RestController
@RequestMapping("/new")
public class NewController {
  @ResponseBody
  @RequestMapping(value = "/test", method = RequestMethod.GET)
  public String testControl() {
      return "works";
  }
}
...