我读过一些教程,
https://spring.io/guides/gs/spring-boot/
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-gradle-plugin
您可以使用嵌入式Tomcat
来完成这项工作。本文可能会帮助您使用嵌入式Tomcat
创建Java Web应用程序,下面是我的TomcatBootstrap代码
public class TomcatBootstrap {
private static final Logger LOG = LoggerFactory.getLogger(TomcatBootstrap.class);
public static void main(String[] args) throws Exception{
System.setProperty("tomcat.util.scan.StandardJarScanFilter.jarsToSkip", "*.jar");
int port =Integer.parseInt(System.getProperty("server.port", "8080"));
String contextPath = System.getProperty("server.contextPath", "");
String docBase = System.getProperty("server.docBase", getDefaultDocBase());
LOG.info("server port : {}, context path : {},doc base : {}",port, contextPath, docBase);
Tomcat tomcat = createTomcat(port,contextPath, docBase);
tomcat.start();
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run(){
try {
tomcat.stop();
} catch (LifecycleException e) {
LOG.error("stoptomcat error.", e);
}
}
});
tomcat.getServer().await();
}
private static String getDefaultDocBase() {
File classpathDir = new File(Thread.currentThread().getContextClassLoader().getResource(".").getFile());
File projectDir =classpathDir.getParentFile().getParentFile();
return new File(projectDir,"src/main/webapp").getPath();
}
private static Tomcat createTomcat(int port,String contextPath, String docBase) throws Exception{
String tmpdir = System.getProperty("java.io.tmpdir");
Tomcat tomcat = new Tomcat();
tomcat.setBaseDir(tmpdir);
tomcat.getHost().setAppBase(tmpdir);
tomcat.getHost().setAutoDeploy(false);
tomcat.getHost().setDeployOnStartup(false);
tomcat.getEngine().setBackgroundProcessorDelay(-1);
tomcat.setConnector(newNioConnector());
tomcat.getConnector().setPort(port);
tomcat.getService().addConnector(tomcat.getConnector());
Context context =tomcat.addWebapp(contextPath, docBase);
StandardServer server =(StandardServer) tomcat.getServer();
//APR library loader. Documentation at /docs/apr.html
server.addLifecycleListener(new AprLifecycleListener());
//Prevent memory leaks due to use of particularjava/javax APIs
server.addLifecycleListener(new JreMemoryLeakPreventionListener());
return tomcat;
}
private static Connector newNioConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
Http11NioProtocol protocol =(Http11NioProtocol) connector.getProtocolHandler();
return connector;
}
}
我有一个由3个模块组成的分级项目: (无依赖项) (依赖于) (取决于两个模块)
问题内容: 在我的J2EE项目中,我有几个依赖关系,在任何Maven存储库中都不可用,因为它们是专有库。这些库需要在运行时可用,因此必须将其复制到target /…/ WEB-INF / lib … 现在,我在POM中将它们列为系统依赖项,但是使用这种方法的问题是,在编译过程中没有将它们复制到目标版本中。而且这种方法也不是很优雅。 那么将它们集成到Maven中的最佳方法是什么? 注意:我不想创建自
我跟踪了POM 当我在Intellij IDEA中从Maven插件运行Maven包时,我在Intellij控制台窗口上看到以下输出: 进程已完成,退出代码为%1 我有调试级别的maven日志,但仍然不清楚为什么JAR没有创建?
**新到分级 我有一个需求,需要使用一个现有的spring boot项目(它安装在本地maven存储库中)作为另一个项目(spring boot gradle项目)中的依赖项。 使用mavenLocal我能够成功地运行和构建gradle项目,但是当我试图使用其他项目中存在的任何类时,我就无法导入它。 我如何使用这个分级项目中的maven项目?
我正在使用一些apache HttpClient jar,所以我把它们放在我的项目的lib目录中,当Netbeans编译项目时,它复制lib并生成一个项目jar到dist目录中,但是当我使用webstart运行项目时,我需要将项目jar和lib复制到Tomcat的根目录中,我想知道Netbeans是否可以生成一个包含lib目录中所有jar的项目jar,这样我就不必将项目jar和lib目录复制到To
一个spring boot的项目,在idea上可以正常运行,打包成jar包后运行出错,报错如下: 网上的各种方法都试过了,包括加代码、改代码、换一种方式打包,都不行