Am Application Server - Selbe files aber trotzdem CNF

Bitte aktiviere JavaScript!
Hi,

Ich habe mit einem EAR file ein Class NOt FOund Exception problem.
Die das EAR file habe ich auf zwei systemen getested - System A macht keine Probleme alles klappt so wie ich es erwarte - beim System B bekomme Ich die CNF Exception.
Sowohl System A und auch System B sind nach der gleichen ANleitung installiert worden (natürlich kann man fehler nicht ausschließen) - aber ich sehe die Abweichungen nicht.
Es Handelt sich um ein RedHat Linux, Oracle Java 1.8, Weblogic 12c, ... alles gleich.

Dennoch wenn ich auf system B bei der application eine action starte erhalte ich die CNF Exception (siehe unten).
Das EAR ist bei beiden das selbe (md5 sum vergleich)
Ich habe schon überprüft, das beide die selben Server startup arguments haben (bis auf die IP angaben etc.).
Auch der Classpath ist gleich.

Zum Schluss habe ich auch die von dem JVM Prozess geöffneten files vergleichen (lsof ... ) - die sind auch gleich.

Jetzt frage ich mich wie denn das sein kann, das es dann die Klasse in System A findet aber bei System B nicht wo es doch die selben file (also auch jars) öffnet!

Gibt es in Weblogic noch weitere configuration die den classpath/classloader einschränkt (so wie die weblogic.xml im EAR file, die ja bei beiden gleich ist).


Code:
org.xml.sax.SAXException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
    at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:230)
    at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:191)
    at com.my.application.logic.data.ResourceParser.parse(ResourceParser.java:178)
    at com.my.application.logic.data.Model.validate(Model.java:323)
    at com.my.application.logic.action.Update.execute(Update.java:165)
    at com.my.application.webapp.ActionController.doGet(ActionController.java:78)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:247)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3682)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3649)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2433)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259)
    at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1691)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1651)
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1026)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:987)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:83)
    at weblogic.utils.classloaders.GenericClassLoader.doFindClass(GenericClassLoader.java:608)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:540)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:493)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:470)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:62)
    at org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:82)
    at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:228)
    ... 32 more

Die Konkrete Zeile:
>> final XMLReader parser = XMLReaderFactory.createXMLReader();


Im error log hab ich auch folgende abweichung gefunden ... die mich aber auch nciht weiter gebracht hat:
Apr 16, 2019 12:30:04 PM weblogic.wsee.runtime.JMSStoreRoutableIDMapper addServerSetListener
INFO: add ServerSetListener for partition: DOMAIN
Warning: org.apache.xerces.parsers.SAXParser: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
Apr 16, 2019 12:30:38 PM [com.sun.xml.ws.policy.EffectiveAlternativeSelector] selectAlternatives
WARNING: WSP0075: Policy assertion "{http://docs.oasis-open.org/ws-tx/wsat/2006/06}ATAssertion" was evaluated as "UNKNOWN".
Apr 16, 2019 12:30:38 PM [com.sun.xml.ws.policy.EffectiveAlternativeSelector] selectAlternatives
WARNING: WSP0019: Suboptimal policy alternative selected on the client side with fitness "UNKNOWN".
Habt ihr noch Ideen was ich testen/checken/überprüfen kann? (Auf System hab ich leider keinen direkt zugriff - deshalb ist dort das untersuchen bischen umständlich)

Ich wollte noch rausfinden woher System A eigentlich den Klasse hat, also debugged und dann per IntelliJ "parser .getClass().getProtectionDomain().getCodeSource()" raus finden aber da krieg ich auch nur NULL.
 
A

Anzeige




Vielleicht hilft dir unser Kurs hier weiter —> (hier klicken)
Also dazu findet sich im Web einiges und das Problem scheint durchaus öfters vor zu kommen.

Es könnte helfen, ihm die SAXParserFactory vorzugeben:
Code:
-Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
Evtl. auch noch die folgenden, wenn er da auch noch in Probleme rennen sollte:
Code:
-Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
Eine Seite, wo noch ein paar mehr Optionen / Vorschläge zu finden sind zu so einer Thematik:
https://stackoverflow.com/questions/11677572/dealing-with-xerces-hell-in-java-maven

Ich hoffe, dass dies ein kleines bisschen hilft. Ich selbst hatte so ein Problem bisher nicht, weshalb ich da nie im Detail in so eine Thematik eintauchen konnte.
 
Leider, habe ich noch immer nicht klären können was es war, nach mehren neu Starts um es mit mehreren Parametern zu versuchen geht es nun wieder ohne jegliche Änderung ...

Das macht mich aber sehr unrund, da ich nach wie vor nicht weiß was es ist - was es ausgelöst hatte - wie ich es vermeiden kann.
 
Passende Stellenanzeigen aus deiner Region:

Oben