核心概念
在开始之前,理解几个关键概念很重要:

- 域: WebLogic 逻辑上的一组相关资源,包括一个或多个服务器、应用程序、配置和安全设置,一个域通常由一个管理服务器和一个或多个受管服务器组成。
- 管理服务器: 这是域的“大脑”,它负责存储和集中管理域的配置信息,并监控域中所有服务器的运行状态,你通过管理控制台或命令行工具连接到管理服务器来部署应用、修改配置等。
- 受管服务器: 这些是实际运行你的应用程序(如 Web 应用、EJB)的服务器,它们从管理服务器获取配置,但运行时是独立的。
- Node Manager: 这是一个轻量级的进程,通常运行在每台托管 WebLogic 服务器的机器上,它的主要职责是启动、停止、重启和监控受管服务器。管理服务器通常不直接通过 Node Manager 启动,而是由用户手动启动。
使用 startWebLogic.sh 脚本(手动启动)
这是最直接、最常用的启动管理服务器的方法,适用于开发和测试环境。
步骤 1:定位脚本
管理服务器的启动脚本位于 WebLogic 的主目录下,具体路径是:
$WEBLOGIC_HOME/user_projects/domains/<你的域名>/bin/startWebLogic.sh
$WEBLOGIC_HOME: 你的 WebLogic 安装根目录,/oracle/middleware/weblogic_12213。<你的域名>: 你创建的域的名称,base_domain。
步骤 2:执行脚本
打开终端,导航到 bin 目录,然后执行脚本:
cd $WEBLOGIC_HOME/user_projects/domains/<你的域名>/bin ./startWebLogic.sh
步骤 3:观察启动过程
脚本执行后,你会看到大量的日志信息在终端输出,这是 WebLogic 加载各种模块、应用配置的过程,启动成功的关键信息是:

<WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
当你看到类似上面的信息时,说明管理服务器已经成功启动并处于 RUNNING 状态。
步骤 4:验证启动
-
查看日志文件: 日志文件是排查问题的最佳途径,管理服务器的日志文件位于:
$WEBLOGIC_HOME/user_projects/domains/<你的域名>/servers/AdminServer/logs/AdminServer.log
你可以实时查看日志内容:
tail -f AdminServer.log -
访问管理控制台: 在浏览器中输入管理服务器的地址,格式为:
(图片来源网络,侵删)http://<管理服务器主机名>:<管理端口>/console- 管理服务器主机名: 默认是
localhost,如果不是,请使用你在创建域时配置的机器名或 IP 地址。 - 管理端口: 默认是
7001,如果不是,请检查config/config.xml文件或你创建域时的设置。 - 用户名和密码: 使用你在创建域时设置的
weblogic用户的密码。
如果能成功登录控制台,说明管理服务器启动完全成功。
- 管理服务器主机名: 默认是
使用 NoHup 在后台启动
在生产环境或需要长期运行的服务器上,通常不希望终端关闭后 WebLogic 进程也跟着退出,这时可以使用 nohup 命令。
cd $WEBLOGIC_HOME/user_projects/domains/<你的域名>/bin nohup ./startWebLogic.sh > admin_server_startup.log 2>&1 &
nohup: 让命令忽略挂起信号 (SIGHUP),即使用户退出登录,命令也会继续执行。> admin_server_startup.log: 将标准输出重定向到admin_server_startup.log文件。2>&1: 将标准错误也重定向到同一个文件。&: 让命令在后台执行。
启动后,你可以使用 ps 命令来检查进程是否存在:
ps -ef | grep java | grep startWebLogic
使用 WebLogic Node Manager 启动(推荐用于生产环境)
虽然 Node Manager 主要用于管理受管服务器,但它也可以用来启动管理服务器,这种方式更易于集成到自动化运维工具(如 Ansible、Jenkins)中。
前提条件:Node Manager 必须先运行
-
启动 Node Manager:
- Windows: 运行
startNodeManager.cmd。 - Linux/Unix: 运行
startNodeManager.sh。 - Node Manager 的脚本位于域的
bin目录下:$WEBLOGIC_HOME/user_projects/domains/<你的域名>/bin。
- Windows: 运行
-
验证 Node Manager: Node Manager 启动后,会监听一个默认端口(
5556),你可以通过日志文件$DOMAIN_HOME/servers/AdminServer/logs/nodemanager.log来确认它是否成功运行。
使用 WebLogic Admin Server 启动管理服务器
-
登录管理控制台: 使用浏览器访问
http://<host>:<port>/console并登录。 -
导航到服务器页面: 在左侧导航栏中,展开
Environment->Servers。 -
启动服务器: 你会看到一个名为
AdminServer的服务器,点击它的链接,然后在右上角点击Start按钮,Yes确认。 -
监控状态: 页面会刷新,显示服务器的状态从
STANDING->STARTING->RUNNING。
常见问题与排查
-
问题:
Error 403--Forbidden- 原因: 端口被占用,或者防火墙阻止了访问。
- 解决:
- 检查端口是否被占用:
netstat -an | grep 7001(Linux) 或netstat -ano | findstr 7001(Windows)。 - 检查操作系统的防火墙设置,确保 7001 端口是开放的。
- 检查端口是否被占用:
-
问题:
weblogic.security.SecurityInitializationException: Initialization failed- 原因: 通常是用户名或密码错误,或者安全配置有问题。
- 解决: 检查
boot.properties文件(如果存在)中的用户名密码是否正确,或者确保在启动时输入了正确的凭据。
-
问题:
weblogic.utils.AssertionError: t3://localhost:7001: [Ljava.lang.Object;@...- 原因: 这是一个比较底层的错误,通常与 Java 版本不兼容、JVM 参数设置不当或域配置损坏有关。
- 解决:
- 确保你使用的 JDK 版本是 WebLogic 官方文档推荐的版本。
- 检查
setDomainEnv.sh文件中的 JVM 参数设置。 - 尝试重新创建一个干净的域。
-
问题: 启动非常慢或卡在某个步骤
- 原因: 可能是配置了过多的 JDBC 数据源、JMS 队列/主题,或者网络连接问题。
- 解决: 查看
AdminServer.log日志,定位到卡住的位置,分析相关模块的加载情况。
最佳实践
- 使用脚本: 将启动命令写入一个 shell 脚本中,方便管理和执行。
- 日志管理: 为每次启动生成带时间戳的日志文件,便于追踪历史问题。
- 环境变量: 确保
JAVA_HOME和MW_HOME(Middleware Home) 等环境变量在启动前已正确设置。 - 安全: 不要在生产环境中使用默认的
weblogic密码,并遵循最小权限原则。 - 自动化: 在生产环境中,强烈建议使用 Node Manager 结合 WLST (WebLogic Scripting Tool) 或企业级监控平台来实现自动化启动和管理。
