RMI-клиент, развернутый на weblogic, получает ClassNotFoundException - PullRequest
0 голосов
/ 22 мая 2019

вот исключение, которое я получаю:

]] Root cause of ServletException.
java.lang.NullPointerException
    at com.xyz.ServiceFactory.getAppName(ServiceFactory.java:190)
    at com.xyz.ServiceFactory.getApplicationName(ServiceFactory.java:128)
    at com.xyz.SomeServiceAccessorProxy.<init>(SomeServiceAccessorProxy.java:10)
    at com.xyz.SomeServiceAccessorImpl.getService(SomeServiceAccessorImpl.java:41)
    at com.xyz.validateUserLogin(SomeCommon.java:89)
    Truncated. see log file for complete stacktrace

Таким образом, вышеприведенное исключение - это то, что видно только. Удивительно при закрытии weblogic - мы получаем дополнительную информацию в журнале, который вставлен ниже: (полный журнал)

<23/05/2019 10:49:25 AM EST> <Notice> <WebLogicServer> <BEA-000388> <JVM 
called the WebLogic Server shutdown hook. The server will force shutdown 
now.>
<23/05/2019 10:49:25 AM EST> <Notice> <WebLogicServer> <BEA-000396> <Server 
shutdown has been requested by <WLS Kernel>.>
 <23/05/2019 10:49:25 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server 
 state changed to FORCE_SUSPENDING.>
 <23/05/2019 10:49:25 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server 
 state changed to ADMIN.>
 <23/05/2019 10:49:25 AM EST> <Notice> <WebLogicServer> <BEA-000365> <Server 
 state changed to FORCE_SHUTTING_DOWN.>
 <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
 "Default[7]", listening on fe80:0:0:0:515e:8ad6:9c96:b298:7001, was shut 
  down.>
  <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
  "Default[6]", listening on fe80:0:0:0:9857:44d:606c:9ebd:7001, was shut 
  down.>
  <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
  "Default[5]", listening on fe80:0:0:0:162:e6b1:5031:79e5:7001, was shut 
   down.>
   <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
   "Default[1]", listening on 172.26.11.12:7001, was shut down.>
   <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
   "Default[4]", listening on fe80:0:0:0:f4a9:ad8e:35cf:ad32:7001, was shut 
    down.>
    <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
    "Default[2]", listening on fe80:0:0:0:2154:84d6:eba1:3618:7001, was shut 
    down.>
    <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
    "Default[3]", listening on fe80:0:0:0:2562:eb0f:7c68:7a63:7001, was shut 
     down.>
    <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
    "Default", listening on 192.168.56.1:7001, was shut down.>
    <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
    "Default[9]", listening on 127.0.0.1:7001, was shut down.>
    <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
    "Default[10]", listening on 0:0:0:0:0:0:0:1:7001, was shut down.>
    <23/05/2019 10:49:25 AM EST> <Notice> <Server> <BEA-002607> <Channel 
    "Default[8]", listening on fe80:0:0:0:dc3e:fba8:561c:e9ca:7001, was shut 
    down.>
    <23/05/2019 10:49:25 AM EST> <Error> <WebLogicServer> <BEA-000381> 
    <ServerLifeCycle operation failed.
     Message: halt call on RuntimeServerService failed
     java.lang.ExceptionInInitializerError
     java.lang.ExceptionInInitializerError
     at weblogic.iiop.IIOPOutputStream.<clinit>(IIOPOutputStream.java:138)
     at weblogic.iiop.Message.getOutputStream(Message.java:175)
     at weblogic.iiop.LocateRequestMessage.<init> 
     (LocateRequestMessage.java:93)
     at weblogic.iiop.IORManager.locateNameService(IORManager.java:196)
     at weblogic.iiop.IORManager.createInitialReference(IORManager.java:120)
     Truncated. see log file for complete stacktrace
     Caused By: org.omg.CORBA.INITIALIZE: Cannot instantiate 
     com.ibm.ws.orb.WSUtilDelegateImpl  vmcid: 0x0  minor code: 0  
    completed: No
    at javax.rmi.CORBA.Util.createDelegate(Util.java:355)
    at javax.rmi.CORBA.Util.<clinit>(Util.java:67)
    at weblogic.iiop.IIOPOutputStream.<clinit>(IIOPOutputStream.java:138)
    at weblogic.iiop.Message.getOutputStream(Message.java:175)
    at weblogic.iiop.LocateRequestMessage.<init> 
    (LocateRequestMessage.java:93)
    Truncated. see log file for complete stacktrace
    Caused By: java.lang.ClassNotFoundException: 
    com.ibm.ws.orb.WSUtilDelegateImpl (no security manager: RMI class loader 
    disabled)
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:393)
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:185)
    at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:219)
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:152)
    Truncated. see log file for complete stacktrace
    >
   <23/05/2019 10:49:25 AM EST> <Error> <WebLogicServer> <BEA-000381> 
   <ServerLifeCycle operation failed.
   Message: halt call on EditServerService failed
  java.lang.NoClassDefFoundError: Could not initialize class 
  weblogic.iiop.IIOPOutputStream
  java.lang.NoClassDefFoundError: Could not initialize class 
  weblogic.iiop.IIOPOutputStream
    at weblogic.iiop.Message.getOutputStream(Message.java:175)
    at weblogic.iiop.LocateRequestMessage.<init> 
 (LocateRequestMessage.java:93)
    at weblogic.iiop.IORManager.locateNameService(IORManager.java:196)
    at weblogic.iiop.IORManager.createInitialReference(IORManager.java:120)
    at weblogic.corba.orb.ORB.string_to_object(ORB.java:341)
    Truncated. see log file for complete stacktrace
    >
<23/05/2019 10:49:25 AM EST> <Error> <WebLogicServer> <BEA-000381> <ServerLifeCycle operation failed.

Message: halt call on DomainRuntimeServerService failed
java.lang.NoClassDefFoundError: Could not initialize class weblogic.iiop.IIOPOutputStream
java.lang.NoClassDefFoundError: Could not initialize class weblogic.iiop.IIOPOutputStream
        at weblogic.iiop.Message.getOutputStream(Message.java:175)
        at weblogic.iiop.LocateRequestMessage.<init>(LocateRequestMessage.java:93)
        at weblogic.iiop.IORManager.locateNameService(IORManager.java:196)
        at weblogic.iiop.IORManager.createInitialReference(IORManager.java:120)
        at weblogic.corba.orb.ORB.string_to_object(ORB.java:341)
        Truncated. see log file for complete stacktrace

Класс не найден, исключение, на которое жалуется weblogic: WsnInitialContextFactory присутствует в файле jar, который находится в web-inf \ lib

Дважды проверил это. ПРИМЕЧАНИЕ - классы com.xyz.ServiceFactory тоже присутствуют в другом jar-файле, который тоже находится в web-inf \ lib.

поэтому классы из web-inf \ lib обнаруживаются и запускаются, но когда код попадает в класс: 'WsnInitialContextFactory', мы сталкиваемся с ClassNotFoundException.

Примечание 2: Еще одна вещь, которую стоит отметить, это то, что до того, как вышеупомянутый вызов был сделан, я явно устанавливаю следующую строку кода:

System.setProperty("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory"); 

Note3: если я помещу эти jar-файлы в глобальный путь к классу через скрипт запуска weblogic - тогда я не столкнусь с этой проблемой:

set JAVA_PROPERTIES=%JAVA_PROPERTIES% -Dweblogic.ext.dirs=C:\rmi_ibm_jars

Я не хочу помещать их в глобальный путь к классам, поскольку это не рекомендуется и не рекомендуется.

...