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…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...