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倍。 简单来说,就是用于格式转换的,…...
Axure RP实战:打造高效图形旋转验证码
Axure RP实战:打造高效图形旋转验证码 在数字产品设计的海洋中,验证码环节往往是用户交互体验的细微之处,却承载着验证用户身份的重要任务。 传统的文本验证码虽然简单直接,但随着用户需求的提高和设计趋势的发展,它…...
101012分页属性
4k页面 P(有效位):1有效,0无效 R/W(读写位):1可读可写,0可读 U/S(权限位):1(User),0(System) A(物理页访问位ÿ…...
从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…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
数据挖掘是什么?数据挖掘技术有哪些?
目录 一、数据挖掘是什么 二、常见的数据挖掘技术 1. 关联规则挖掘 2. 分类算法 3. 聚类分析 4. 回归分析 三、数据挖掘的应用领域 1. 商业领域 2. 医疗领域 3. 金融领域 4. 其他领域 四、数据挖掘面临的挑战和未来趋势 1. 面临的挑战 2. 未来趋势 五、总结 数据…...
