1- 发帖目的
在这篇文章中,我将向您展示如何在WebLogic Server上部署Spring Boot应用程序。这是Oracle提供的Web 服务器,可免费下载、开发、测试、原型设计和演示您的应用程序。WebLogic基于OTN许可证发布 。
确保您已 成功安装WebLogic 。如果没有,可以参考下一篇安装WebLogic的方法 :
实际上, Spring Boot应用程序可以打包成一个 Executable JAR 文件。使用此文件,您可以直接运行应用程序,而无需将其部署在任何Web 服务器上。Executable JAR 文件 不能兼容所有的Web服务器,因此,如果你想将它部署在Web 服务器上, 你需要将Spring Boot应用程序打包成一个WAR文件。
我在这里有一个 Spring Boot 项目,使用 Eclipse IDE开发。创建 Spring Boot时,您有 2 种选择来打包此项目,例如 WAR 或 JAR。
当您 使用“Packaging = War” 选项创建Spring Boot 项目时 , Eclipse 将为您创建 2 个类,例如 “AbcApplication & ServletInitializer” 。 WAR 文件适合部署在 Web 服务器上。
同时,如果您 使用 “Packaging = Jar”选项 创建Spring Boot ,则只会创建一个AbcApplication 类。当 Spring Boot 应用程序打包到 JAR文件中时,它可以独立执行,无需部署在任何 Web Server上。但是 JAR 文件不适合部署在 Web 服务器上。
WAR 文件。
如果您有可用的 Spring Boot,则需要将打包方法更正为 WAR:
在 Eclipse 上 打开 pom.xml 文件,将打包方式改为 war。
如果您的项目没有ServletInitializer类,请创建它。
ServletInitializer.java
package org.o7planning.example;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWebLogicApplication.class);
}
}
将以下配置片段添加到 pom.xml:
** pom.xml **
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
如果您的项目中有多个 Application类,请告诉 Spring Boot 哪个类将用于您的应用程序。
** pom.xml **
<properties>
<start-class>org.o7planning.example.OtherSpringBootWebApplication</start-class>
</properties>
weblogic.xml & dispatcherServlet-servlet.xml
在 src/main/webapp/WEB-INF 文件夹中 创建 weblogic.xml & dispatcherServlet-servlet.xml 2个文件。请注意,如果此文件夹不存在,请创建它。
当您的应用程序部署在 WebLogic上时,会出现 "context-root = /myweb",您可以通过在 weblogic.xml文件中安装来更改它:
weblogic.xml
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
<wls:context-root>/myweb</wls:context-root>
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>org.slf4j.*</wls:package-name>
<wls:package-name>org.springframework.*</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
dispatcherServlet-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
在下一步中,您需要使用 Maven 创建 WAR文件。您必须确保您的 Eclipse 使用的是 JDK 而不是 JRE。如果不是,则在此过程中将发生错误。
右键单击项目并选择:
- 运行方式/Maven 安装
此时,您将在项目的目标文件夹中有一个WAR文件,您可以使用该文件部署在Tomcat 服务器上。
将应用程序打包成 WAR 文件后,您可以在WebLogic上部署该文件 :
有两种方法可以将应用程序部署到 WebLogic Server.
- 将WAR文件复制到服务器的文件夹中,然后将其部署到WebLogic中。如果要重新部署应用程序,只需复制新的WAR文件覆盖旧文件并通知WebLogic更新应用程序即可。
- 使用Upload 功能部署 WAR文件。
好的,到这里,我已经复制了 WAR 文件并安装到了服务器的一个文件夹中。
按 “激活更改” 以激活更改。
此时,您的应用程序处于“已 准备” 状态(已准备好)。它并没有真正激活工作。
测试
在WebLogic 上取消部署应用程序 ,您必须执行 2 个步骤。
- 停止应用程序。
- 从WebLogic中删除应用程序 。
如果您的应用程序升级了,您需要重新打包应用程序并获得一个新的WAR文件。要重新部署应用程序,您有两种方法:
- 取消部署应用程序并重新部署。
- 复制一个新的 WAR 文件,覆盖旧的 WAR 文件并通知 WebLogic 再次更新应用程序(或重新启动 WebLogic)。注意:仅当您的应用程序直接从 放在服务器上的WAR文件部署时才使用这种方式。
在上一步中,我直接从 放置在服务器文件夹中的WAR文件部署了应用程序。现在我将复制新文件以覆盖旧文件。
并更新应用程序: