У нас есть устаревшее приложение в struts1.2, развернутое в tomcat, у нас есть требование заменить tomcat на springboot в этом устаревшем приложении.
Мы используем встроенный tomcat для загрузки источников данных В нашем устаревшем приложении мымы используем некоторые родительские компоненты, которые тоже есть в Struts1.2. Мы сталкиваемся с проблемами при загрузке JSP текущего и родительского компонентов.
Наши страницы Java не загружаются при запуске класса springboot.
Загрузка источника данных
@Bean
public TomcatServletWebServerFactory tomcatFactory(DbPrim dbp) {
@Override
protected TomcatWebServer getTomcatWebServer(
Tomcat tomcat) {
tomcat.enableNaming();
return super.getTomcatWebServer(tomcat);
}
@Override
protected void postProcessContext(Context context) {
ContextResource resource = new ContextResource();
resource.setName("jdbc/myDbApp");
resource.setType(DataSource.class.getName());
resource.setProperty(FACTORY, sfApp.getFactory());
resource.setProperty(DRIVER_CLASS, "driverclass");
resource.setProperty("url", "abc");
resource.setProperty(USERNAME, "test");
resource.setProperty(PAS, "pwd");
resource.setProperty(MAX_ACTIVE, 1);
resource.setProperty(MAX_IDLE, 1);
resource.setProperty(MAXWAIT, 100);
context.getNamingResources().addResource(resource);
}
Spring Boot Class
Загрузка конфигурации Struts существующего устаревшего приложения
public class MyApplication extends SpringBootServletInitializer {
@Autowired
DBContainer appContainer;
private static Logger logger1 = LoggerFactory.getLogger(MyApplication.class);
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Bean
public ServletRegistrationBean action() {
ServletRegistrationBean bean = new ServletRegistrationBean(
new GenericActionServlet());
Map<String, String> initparam = new HashMap<String, String>();
initparam.put("application", "ApplicationResources");
initparam.put("config", "/WEB-INF/struts-config.xml");
initparam.put("debug", "2");
initparam.put("detail", "2");
initparam.put("validate", "true");
bean.setInitParameters(initparam);
bean.setLoadOnStartup(1);
bean.addUrlMappings("*.do");
return bean;
}