NetWorker RESTAPI 无法加载“Native Library /nsr/authc/webapps/nwrestapi/WEB-INF/lib/librestapi64.so already loaded in another classloader”

摘要: NetWorker RESTAPI 无法加载引发:“java.lang.UnsatisfiedLinkError:本机库 /nsr/authc/webapps/nwrestapi/WEB-INF/lib/librestapi64.so 已加载到另一个 classloader 中”

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

  • NetWorker RESTAPI 无法加载引发:“java.lang.UnsatisfiedLinkError:本机库 /nsr/authc/webapps/nwrestapi/WEB-INF/lib/librestapi64.so 已加载到另一个 classloader 中”
HTTP Status 500 - Servlet.init() for servlet nwrestapi threw exception

type Exception report

message Servlet.init() for servlet nwrestapi threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet nwrestapi threw exception
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1775)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1734)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)

root cause

java.lang.UnsatisfiedLinkError: Native Library /nsr/authc/webapps/nwrestapi/WEB-INF/lib/librestapi64.so already loaded in another classloader
	java.lang.ClassLoader.loadLibrary0(Unknown Source)
	java.lang.ClassLoader.loadLibrary(Unknown Source)
	java.lang.Runtime.load0(Unknown Source)
	java.lang.System.load(Unknown Source)
	com.emc.nw.webapi.WebApiServlet.loadDbSessionModules(WebApiServlet.java:75)
	com.emc.nw.webapi.WebApiServlet.init(WebApiServlet.java:55)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1775)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1734)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)

  • lsof 命令将库显示为 DEL 状态:
[root@nw_server ~]#  lsof | grep librestapi64
jsvc       4543 nsrtomcat  DEL       REG              253,2   14881546   67764661 /nsr/authc/webapps/nwrestapi/WEB-INF/lib/librestapi64.so

原因

该库处于 DEL 状态(过时的库文件描述符),这会阻止正常库加载;因此,该错误显示“Already loaded in another classloader”。

解决方案

受影响的产品

NetWorker

产品

NetWorker
文章属性
文章编号: 000037878
文章类型: Solution
上次修改时间: 13 5月 2025
版本:  4
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。