当前位置: 首页 > news >正文

Weblogic部署

要安装weblogic,首先要有java环境,因此需要先安装jdk。

这里需要注意,weblogic版本不同,对应的jdk版本也不同,我在这里就踩了很多坑,我这里下载的是fmw_12.2.1.4.0_wls_lite_generic.jar对应的是jdk-8u333,而且jdk要从oracle官网下载,系统里自带的或者是安装的openjdk在安装时也会报错。

1. 安装jdk8

在官网 Java Archive | Oracle 下载好对应的版本,并将jdk安装包上传至服务器。

# 解压到/usr/local目录下
sudo tar -zxvf jdk-8u333-linux-x64.tar.gz -C /usr/local# 编辑 environment 文件
vim /etc/environment# JAVA_HOME= 后面是JDK安装目录,PATH在该文件中已经有了,我们只需在PATH中追加 :$JAVA_HOME/bin 即可
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin" 
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME=/usr/local/jdk1.8.0_333# 使改动立即生效
source /etc/environment# 编辑 profile 文件
vim /etc/profile# 追加如下内容,JAVA_HOME= 后面是JDK安装目录
export JAVA_HOME=/usr/local/jdk1.8.0_333
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH# 使改动立即生效
source /etc/profile# 验证安装效果
执行 java -version 命令,控制台打印出JDK版本信息,说明安装成功。

参考文档:

Ubuntu 手动安装 JDK8_ubuntu安装jdk8-CSDN博客

2. 安装weblogic

Weblogic下载地址:WebLogic Server 12c (12.2.1), WebLogic Server 11g (10.3.6) and Previous Releases

2.1. 创建weblogic的安装目录

root用户安装weblogic是无法安装的,会报错,需要创建一个用户进行安装weblogic。

# 创建weblogic用户,这里最好不要使用useradd创建,因为如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本,操作起来会很麻烦,我在这里就踩了好多坑
adduser weblogic
passwd weblogic

参考文档:

ubuntu服务器新建用户后,上下键删除键tab键失效,提示符只有$解决办法_为什么用useradd添加了用户之后,删除键用不了-CSDN博客

# 创建目录
mkdir /opt/weblogic
cd /opt/weblogic/
# 修改 /opt/weblogic 目录的所有权,-R:递归地修改指定目录及其子目录中的文件或目录的所有权
chown -R weblogic:weblogic /opt/weblogic
# 将安装包上传解压至该目录内,可以看到是一个jar包

2.2. 创建对应的安装文件

创建 oraInst.loc 文件

在WebLogic中,oraInst.loc文件是一个安装位置配置文件,用于指示Oracle软件安装的位置。

# 创建 oraInst.loc 文件
touch oraInst.loc# 编辑 vim oraInst.loc
inst_group=weblogic
inventory_loc=/home/weblogic/oraInventory

创建 wls.rsp 响应文件

wls.rsp文件是一个用于静默安装的响应文件,在安装WebLogic Server时,可以通过提供wls.rsp文件来自动回答安装程序中的提示和配置选项,从而实现静默安装。wls.rsp文件中包含了安装过程中所需的各种配置信息,如安装目录、产品代码、安全设置等。通过修改wls.rsp文件中的相关配置,可以定制WebLogic Server的安装过程,以满足特定的需求和环境。

# 创建 wls.rsp 文件
touch wls.rsp# 编辑 vim wls.rsp
[ENGINE]
Response File Version=1.0.0.0.0
[GENERIC]
ORACLE_HOME=/opt/weblogic/oracle_home   #weblogic的安装路径,根据自己的需要修改需提前创建好该目录
INSTALL_TYPE=WebLogic Server   #安装类型选择了最基本的Weblogic Server组件
DECLINE_SECURITY_UPDATES=true
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

2.3. 切换用户

su weblogic

2.4. 静默安装weblogic

这里在安装时遇到一个问题,由于我的系统之前安装过系统自带的openjdk,所以切换用户后导致使用的还是之前的jdk,导致安装报错,这里需要修改使用正确版本的jdk,所以这里在安装命令前面指定了我们要用的jdk。

-silent:表示安装将以静默模式进行,不需要用户交互

-responseFile:指定了响应文件(wls.rsp)的位置,这个文件包含了安装过程中所需的各种配置信息

-invPtrLoc:指定了安装程序用来存储安装指针文件(inventory location)的位置

"/usr/local/jdk1.8.0_333/bin/java" -jar /opt/weblogic/fmw_12.2.1.4.0_wls_lite_generic.jar -silent -responseFile /opt/weblogic/wls.rsp -invPtrLoc /opt/weblogic/oraInst.loc

安装正确的话会如下图所示

2.5. 切换用户

su root

cd /opt/weblogic/oracle_home/wlserver/common/bin/

2.6. 创建域

执行 wlst.sh 脚本文件

./wlst.sh

依次执行下面命令

readTemplateForUpdate('/opt/weblogic/oracle_home/wlserver/common/templates/wls/wls.jar')
cd('Servers/AdminServer')
set('ListenAddress','')
set('ListenPort',7001)   #端口
cd('/')
cd('Security/base_domain/User/weblogic')   #用户名
cmo.setPassword('weblogic1234')   #密码
setOption('OverwriteDomain', 'true')
writeDomain('/opt/weblogic/oracle_home/user_projects/domains')
closeTemplate()
exit()

2.7. 启动Weblogic

cd /opt/weblogic/oracle_home/user_projects/domains/bin

启动方式一:前台启动(前台启动方便查看日志)

./startWebLogic.sh1

启动方式二:后台启动

nohup ./startWebLogic.sh &

启动之后,还需要配置下防火墙,放行7001端口,由于我这里是使用的云服务器,所以在需要在安全组里添加下白名单,然后确定使用即可。

2.8. 测试访问

http://IP地址:7001/console

等待一下,即可看到登录页面,输入用户名和密码进行登录。

参考文档:

Linux安装Weblogic 12.2.1.4.0教程_weblogic下载安装-CSDN博客

3. FAQ

3.1. 切换到weblogic用户后,jdk还是显示jdk17

原因:

在不同的用户之间切换时,JAVA_HOME环境变量以及其他与Java相关的环境配置可能会发生变化。因为每个用户的环境变量设置是独立的。为了确保WebLogic用户能够使用正确的JDK版本,需要在WebLogic用户的环境配置中正确设置JAVA_HOME。

解决:

这里我使用了第二种方法,在执行WebLogic安装脚本时显式地指定JDK路径,确保使用的是正确的JDK版本:

"/usr/local/jdk1.8.0_333/bin/java" -jar /opt/weblogic/fmw_12.2.1.4.0_wls_lite_generic.jar -silent -responseFile /opt/weblogic/wls.rsp -invPtrLoc /opt/weblogic/oraInst.loc

3.2. 交换空间(swap space)不足

原因:

WebLogic安装程序要求必须要有交换空间且大于512MB,我这里系统没有分配任何交换空间。

解决:

# 创建交换空间
sudo fallocate -l 1G /swapfile   #创建一个1G的交换文件
sudo mkswap /swapfile   #格式化交换文件
sudo swapon /swapfile   #启用交换文件
sudo free -m   #验证交换空间是否已正确启用sudo vim /etc/fstab   #永久启用交换文件
# 在文件末尾添加一行来自动挂载交换文件
/swapfile none swap sw 0 0
sudo reboot   #重启系统生效

3.3. 乱码或安装配置文件问题

原因:

指定的Oracle Home位置包含了无效字符或者配置文件配置错误。

解决:

修改正确后即可解决,详见2.2。

相关文章:

Weblogic部署

要安装weblogic,首先要有java环境,因此需要先安装jdk。 这里需要注意,weblogic版本不同,对应的jdk版本也不同,我在这里就踩了很多坑,我这里下载的是fmw_12.2.1.4.0_wls_lite_generic.jar对应的是jdk-8u333…...

面向对象设计的五大原则(SOLID 原则)

面向对象设计的五大原则(SOLID 原则)是指导我们设计可维护、灵活且易扩展的面向对象系统的核心准则。这些原则帮助开发者避免常见的设计陷阱,使代码更具可读性和可维护性。 0.设计原则和设计模式的关系 设计原则(Design Princip…...

Python和MATLAB及C++信噪比导图(算法模型)

🎯要点 视频图像修复模数转换中混合信号链噪音测量频谱计算和量化周期性视觉刺激脑电图高斯噪声的矩形脉冲 总谐波失真 周期图功率谱密度各种心率失常检测算法胶体悬浮液跟踪检测计算交通监控摄像头图像噪音计算 Python信噪比 信噪比是科学和工程中使用的一种测…...

App及web反编译方案

APP反编译代码的工具下载: 下载地址:APK逆向三件套apktool-2.9.3.jar,dex2jar-2.0.zip,jd-gui-windows-1.6.6资源-CSDN文库 》dex2jar: 把dex文件转成jar文件 》 jd-gui: 这个工具用于将jar文件转换成java代码 》APKTool: 首先把…...

学成在线练习(HTML+CSS)

准备工作 项目目录 内部包含当前网站的所有素材,包含 HTML、CSS、图片、JavaScript等等 1.由于元素具有一些默认样式,可能是我们写网页过程中根本不需要的,所有我们可以在写代码之前就将其清除 base.css /* 基础公共样式:清除…...

istio中使用serviceentry结合egressgateway实现多版本路由

假设有一个外部服务,外部服务ip为:10.10.102.90,其中32033为v1版本,32034为v2版本。 现在需要把这个服务引入到istio中,使用egressgateway转发访问该服务的流量,并且需要实现多版本路由,使得he…...

Java项目——苍穹外卖(二)

Redis 简介 Redis是一个基于内存的key-value结构数据库 基于内存存储,读写性能高适合存储热点数据(热点商品、资讯、新闻)企业应用广泛 基础操作 启动 在redis安装目录中打开cmd,输入如上图指令即可启动,按下crtl…...

【Python日志功能】三.日志记录方法与多模块日志

文章目录 相关链接第三篇:日志记录方法与多模块日志1 基本日志记录方法2 在多个模块中使用日志3 文章总结 相关链接 【Python日志功能】一.日志基础与基本配置【Python日志功能】二.高级配置与日志处理器【Python日志功能】三.日志记录方法与多模块日志官方文档&am…...

在pycharm终端中运行pip命令安装模块时,出现了“你要如何打开这个文件”弹出窗口,是什么状况?

这种情况发生在Windows系统上,当在PyCharm终端中运行pip命令安装模块时,如果系统无法确定要使用哪个程序打开该文件,就会出现“你要如何打开这个文件”弹出窗口。 解决方法是: 选择“查找一个应用于此文件”的选项。在弹出的窗口…...

Axure多人协调的方式

当系统有多个模块,又由不同的产品经理负责设计,如何进行协调? 尝试过的方法 1)搭建Axure私服,用Axure的私服进行一个RP文件多人协同编辑; 2)用SVN管理RP文件,每次都要合并。 以上…...

【深度学习】【OnnxRuntime】【Python】模型转化、环境搭建以及模型部署的详细教程

【深度学习】【OnnxRuntime】【Python】模型转化、环境搭建以及模型部署的详细教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【OnnxRuntime】【Python】模型转化、环境搭建以及模型部署的详细教程前言模型转换--pytorch转on…...

React学习笔记(1.0)

在使用vite创建react时,有一个语言选项,就是typescript-SWC,这里介绍一下SWC。 SWC:可扩展的Rust的平台,用于下一代快速开发工具,SWC比Babel快20倍。 简单来说,就是用于格式转换的&#xff0c…...

Axure RP实战:打造高效图形旋转验证码

Axure RP实战:打造高效图形旋转验证码 在数字产品设计的海洋中,验证码环节往往是用户交互体验的细微之处,却承载着验证用户身份的重要任务。 传统的文本验证码虽然简单直接,但随着用户需求的提高和设计趋势的发展,它…...

101012分页属性

4k页面 P(有效位):1有效,0无效 R/W(读写位):1可读可写,0可读 U/S(权限位):1(User),0(System) A(物理页访问位&#xff…...

从0-1 用AI做一个赚钱的小红书账号(不是广告不是广告)

大家好,我是胡广!是不是被标题吸引过来的呢?是不是觉得自己天赋异禀,肯定是那万中无一的赚钱天才。哈哈哈,我告诉你,你我皆是牛马,不要老想着突然就成功了,一夜暴富了,瞬…...

【Kubernetes】常见面试题汇总(十七)

目录 51.简述 Kubernetes 网络策略? 52.简述 Kubernetes 网络策略原理? 53.简述 Kubernetes 中 flannel 的作用? 54.简述 Kubernetes Calico 网络组件实现原理? 51.简述 Kubernetes 网络策略? - 为实现细粒度的容器…...

Vue 3 中动态赋值 ref 的应用

引言 Vue 3 引入了许多新特性,其中之一便是 Composition API。Composition API 提供了一种新的编程范式,使开发者能够更灵活地组织和复用逻辑。其中 ref 是一个核心概念,它允许我们在组件内部声明响应式的状态。本文将探讨如何在 Vue 3 中使…...

Spring Boot-应用启动问题

在使用 Spring Boot 进行开发时,应用启动问题是开发人员经常遇到的挑战之一。通过有效排查和解决这些问题,可以提高应用的稳定性和可靠性。 1. Spring Boot 启动问题的常见表现 Spring Boot 应用启动失败通常表现为以下几种情况: 应用启动…...

深入解析:如何通过网络命名空间跟踪单个进程的网络活动(C/C++代码实现)

在 Linux 系统中,网络命名空间(Network Namespaces)是一种强大的功能,它允许系统管理员和开发者隔离网络资源,使得每个命名空间都拥有独立的网络协议栈。这种隔离机制不仅用于容器技术如 Docker,也是网络安…...

C++ 科目二 [const_cast]

基础数据类型 const_cast 仅仅是深层拷贝改变,而不是改动之前的值 如果需要使用改动后的值,需要通过指针或者引用来间接使用 const int n 5; const string s "MyString";// cosnt_cast 针对指针,引用,this指针 // co…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...