复制Liberty服务器后应用启动但REST接口无法访问求助
问题排查:Liberty服务器复制后接口无法访问
问题描述
我在本地解压部署Liberty服务器,执行server create <name>后,从远程测试环境复制配置文件并放置带本地配置的.war包,命令行启动后应用可正常运行。但将相同服务器文件夹复制到同事电脑或本地其他目录后,虽然日志显示应用ws-ids已启动,调用REST接口时浏览器返回ERR_CONNECTION_REFUSED,且无后续请求日志。尝试更换服务器版本、直接复制测试环境服务器等操作均无效,所有配置文件(server.xml、server.env)及.war包均与正常环境一致,未发现硬编码路径。日志显示应用启动成功,但只有正常环境会在调用接口后生成后续日志,疑似应用未真正加载到服务器,求排查思路及需补充的信息。
启动日志(已翻译)
... com.ibm.ws.http.internal.VirtualHostImpl A CWWKT0016I: Web应用已可用(default_host):http://localhost:9080/idsWS/ com.ibm.ws.session.WASSessionCore I SESN0176I: 将为应用键default_host/idsWS创建新的会话上下文 com.ibm.ws.util I SESN0172I: 会话管理器使用Java默认的SecureRandom实现生成会话ID io.jaegertracing.Configuration I 初始化追踪器=JaegerTracer(版本=Java-0.34.0, 服务名=ws-ids, 报告器=RemoteReporter(发送器=UdpSender(), closeEnqueueTimeout=1000), 采样器=RemoteControlledSampler(maxOperations=2000, 管理器=HttpSamplingManager(hostPort=localhost:5778), 采样器=ProbabilisticSampler(标签={sampler.type=probabilistic, sampler.param=0.001})), 标签={hostname=CTXW10VDDN-006, jaeger.version=Java-0.34.0, ip=26.0.226.195}, zipkinSharedRpcSpan=false, expandExceptionLogs=false, useTraceId128Bit=false) m.ibm.ws.microprofile.opentracing.jaeger.JaegerTracerFactory I CWMOT1001I: 已为ws-ids应用创建JaegerTracer实例。追踪信息将发送至localhost:6831。 com.ibm.ws.app.manager.AppMessageHelper A CWWKZ0001I: 应用ws-ids已启动,耗时39.529秒。 <--------------------------------------------> com.ibm.ws.webcontainer.extension W SRVE0190E: 文件未找到:/openapi/ui/ .jaxrs20.cdi.component.JaxRsFactoryImplicitBeanCDICustomizer W CWWKW1002W: JAXRS提供者FakeRestFilter的CDI作用域为javax.enterprise.context.Dependent。Liberty将从CDI获取提供者实例。 .jaxrs20.cdi.component.JaxRsFactoryImplicitBeanCDICustomizer W CWWKW1002W: JAXRS提供者PortaleCookieFilterRest的CDI作用域为javax.enterprise.context.Dependent。Liberty将从CDI获取提供者实例。 .jaxrs20.cdi.component.JaxRsFactoryImplicitBeanCDICustomizer W CWWKW1002W: JAXRS提供者BusinessExceptionMapper的CDI作用域为javax.enterprise.context.Dependent。Liberty将从CDI获取提供者实例。 .jaxrs20.cdi.component.JaxRsFactoryImplicitBeanCDICustomizer W CWWKW1002W: JAXRS提供者GenericExceptionMapper的CDI作用域为javax.enterprise.context.Dependent。Liberty将从CDI获取提供者实例。 .jaxrs20.cdi.component.JaxRsFactoryImplicitBeanCDICustomizer W CWWKW1002W: JAXRS提供者UnknownUrlExceptionMapper的CDI作用域为javax.enterprise.context.Dependent。Liberty将从CDI获取提供者实例。 .jaxrs20.cdi.component.JaxRsFactoryImplicitBeanCDICustomizer W CWWKW1002W: JAXRS提供者ValidationExceptionMapper的CDI作用域为javax.enterprise.context.Dependent。Liberty将从CDI获取提供者实例。 .apache.cxf.cxf.core.3.2:1.0.71.cl221220221107-1900(id=116)] I 将服务器发布地址设置为/api/ com.ibm.ws.webcontainer.servlet I SRVE0242I: [ws-ids] [/idsWS] [it.sogei.dichiarazioneids.ws.server.JAXRSActivator]: 初始化成功。 eclipselink I CWWJP9990I: [eclipselink] EclipseLink版本:Eclipse Persistence Services - 2.7.11.v20220804-52dea2a3c0 com.ibm.ws.rsadapter.impl.DatabaseHelper I DSRA8203I: 数据库产品名称:Oracle com.ibm.ws.rsadapter.impl.DatabaseHelper I DSRA8204I: 数据库产品版本:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production com.ibm.ws.rsadapter.impl.DatabaseHelper I DSRA8205I: JDBC驱动名称:Oracle JDBC driver com.ibm.ws.rsadapter.impl.DatabaseHelper I DSRA8206I: JDBC驱动版本:12.2.0.1.0
排查思路
- 端口与监听检查
- 执行
netstat -ano | findstr 9080(Windows)或lsof -i :9080(Linux/macOS),确认9080端口是否被占用,以及Liberty是否真的在监听该端口。 - 检查
server.xml中<httpEndpoint>的host属性,确保设置为*(允许所有IP访问)或对应可访问的IP,而非仅localhost(仅本机可访问)。
- 执行
- 文件权限与路径
- 检查复制后的服务器文件夹及子目录权限,确保当前用户拥有读写执行权限(重点关注
logs、workarea、apps目录)。 - Windows环境下排查路径是否包含特殊字符、空格,或文件被系统锁定导致加载失败。
- 检查复制后的服务器文件夹及子目录权限,确保当前用户拥有读写执行权限(重点关注
- 清除缓存与临时文件
- 删除复制后服务器目录下的
workarea、temp、logs文件夹,重新启动服务器,避免旧缓存干扰。
- 删除复制后服务器目录下的
- JDK环境一致性
- 确认异常环境使用的JDK版本与正常环境完全一致(Liberty对JDK版本有严格要求,版本不匹配可能导致应用加载异常)。
- 检查
JAVA_HOME环境变量配置,以及启动服务器时是否调用了正确的JDK。
- 应用状态验证
- 在
server.xml中启用adminCenter-1.0特性,访问http://localhost:9080/adminCenter查看应用是否真正处于已启动状态,检查部署详情。 - 查看
logs/ffdc目录下的故障转储文件,是否存在隐藏的启动错误。
- 在
- 网络与防火墙
- 检查本地防火墙是否拦截了9080端口的请求。
- 跨电脑访问时,确认两台设备在同一网络,且网络策略允许端口访问。
需要补充的信息
- 异常环境下服务器启动的完整
messages.log日志(尤其是启动初期的端口监听相关内容)。 - 执行
server status <name>命令的输出结果,确认服务器运行状态。 - 同事访问接口时使用的具体URL(是否为
http://<目标IP>:9080/idsWS/api/xxx形式)。 - 正常环境与异常环境的JDK版本、操作系统版本对比信息。
server.xml中<httpEndpoint>节点的具体配置内容。
内容的提问来源于stack exchange,提问作者Accollativo
相关产品推荐
相关产品推荐

