我正在开发一个使用camel和cxf的spring-boot应用程序。我还包括弹簧启动器 - 启动器 - 执行器。执行应用程序作为可执行jar或作为部署到Tomcat 8的war时,执行器端点(例如/ beans,/ info,/ env)工作正常。但是,当我向JBoss EAP 6(AS 7)部署相同的战争时执行器端点返回一个404的http状态。我已经尝试在我的pom.xml中包含以下依赖项,但文档没有成功。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
<scope>provided</scope>
</dependency>
我的应用程序类看起来像
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.ApplicationContext;
import org.springframework.web.WebApplicationInitializer;
import java.util.Arrays;
@SpringBootApplication
public class EsbApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(EsbApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(EsbApplication.class);
}
}
关于如何在JBoss EAP中使用执行器端点的任何想法
谢谢!
答案 0 :(得分:3)
JBoss EAP 6 servlet映射看起来像/ *而不是/
为了避免添加web.xml,我不得不将以下内容添加到我的SpringBootServletInitializer类
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(context));
registration.setLoadOnStartup(1);
registration.addMapping("/*"); // required JBOSS EAP 6 / AS 7
super.onStartup(container);
}