У нас есть проект отдыха с 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, но мне это не удалось, несмотря на то, что ухо было успешно развернуто на сервере, и контекст весны также правильно зарегистрирован.
Кто-нибудь знает, что может происходить?