Solon 能打出 war 包放到 tomcat 下运行吗?

Solon 是一个强调自启动的框架,原则上是不推荐 war 容器运行的,但总会有些甲方有硬性规定,或者旧环境不能变。

1、操作指南:

在普通项目增加几项内容即可打 war 包(仍可打 jar 包):

  • 添加 webapp/WEB-INF/web.xml 配置(参考模板里的内容)
  • 添加 solon.web.servlet 插件依赖
  • 使用 solon-maven-plugin 或者 maven-war-plugin 打包

具体模板下载:

2、具体说明:

a) 添加 webapp/WEB-INF/web.xml 配置,把 solonStartClass 的参数值改成 main 函数类

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>Solon war app</display-name>

	<context-param>
		<param-name>solonStartClass</param-name>
		<param-value>org.example.demo.DemoApp</param-value>
	</context-param>
	
	<listener>
		<listener-class>org.noear.solon.web.servlet.SolonServletContextListener</listener-class>
	</listener>

	<welcome-file-list>
		<welcome-file>/</welcome-file>
	</welcome-file-list>
</web-app>

b) 添加 solon.web.servlet 插件依赖

提供 servlet 容器对接支持

<dependency>
  <groupId>org.noear</groupId>
  <artifactId>solon.web.servlet</artifactId>
</dependency>

c) 使用 solon-maven-plugin 或者 maven-war-plugin 打包

solon-maven-plugin 同时支持打 jar 和 war(由 packaging 配置指定)

<packaging>war</packaging>
...
<plugin>
  <groupId>org.noear</groupId>
  <artifactId>solon-maven-plugin</artifactId>
</plugin>

或者 maven-war-plugin,它只支持打 war 包

<packaging>war</packaging>
...
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.3.2</version>
</plugin>
posted @ 2023-02-08 14:47  带刺的坐椅  阅读(78)  评论(0编辑  收藏  举报