FineBI插件开发工程。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

65 lines
2.0 KiB

package com.finebi.start;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.ProductConstants;
import com.fr.startup.FineWebApplicationInitializer;
import com.fr.third.springframework.web.SpringServletContainerInitializer;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleState;
import org.apache.catalina.loader.WebappLoader;
import org.apache.catalina.startup.Tomcat;
import java.awt.*;
import java.net.URI;
import java.util.HashSet;
import java.util.Set;
/**
* @author richie
* @version 10.0
* Created by richie on 2019/10/18
* FineBI启动器
*/
public class Learner {
private static final String APP_NAME = "webroot";
public static void main(String... args) throws Exception {
Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
String docBase = System.getProperty("user.dir") + "/" + APP_NAME;
ProductConstants.setWebAppName(ProductConstants.getAppFolderName());
String appName = "/" + APP_NAME;
tomcat.getServer().addLifecycleListener(lifecycleEvent -> {
if (LifecycleState.STARTED.equals(lifecycleEvent.getLifecycle().getState())) {
try {
Desktop.getDesktop().browse(new URI("http://localhost:8080/webroot/decision"));
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
});
Context context = tomcat.addContext(appName, docBase);
Tomcat.initWebappDefaults(context);
context.setLoader(new TomcatLoader());
SpringServletContainerInitializer initializer = new SpringServletContainerInitializer();
Set<Class<?>> classes = new HashSet<>();
classes.add(FineWebApplicationInitializer.class);
context.addServletContainerInitializer(initializer, classes);
tomcat.start();
}
private static class TomcatLoader extends WebappLoader {
@Override
public ClassLoader getClassLoader() {
return this.getClass().getClassLoader();
}
}
}