Hi, I am facing issue while trying to resolve DTD relative path. The issue started while trying to migrate EJB 2.0 from Weblogic 8.1 to Weblogic 10.3.
The issue goes below:- The weblogic domain path is getting appended by default to the DTD. The DOCTYPE declaration goes below:- <!DOCTYPE ScriptProperties SYSTEM "ScriptProperties.dtd"> Now the above DTD is located at location F:\anshu\dtd\ The weblogic domain path is F:\anshu_domain\ Now while using entity resolver the above dtd is getting resolved as below:- F:\anshu\dtd\file:\ F:\anshu_domain\ ScriptProperties.dtd Please find the below code for the same:- SAXBuilder builder = new SAXBuilder(); builder.setEntityResolver(new EntityResolver() {public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { // locate the DTD ... return new InputSource("file:///" + System.getProperty("anshu.dtd.properties") + File.separatorChar + systemId);} }); Here the anshu.dtd.properties has been set as F:\anshu\dtd. I am getting the error while building DOM object as the path resolve is incorrect. The same code is working on Weblogic 8.1 but is not working on Weblogic 10.3. PFB the stacktrace below:- org.jdom.JDOMException: Error in building: F:\anshu\dtd \file:\D:\anshu_domin\ScriptProperties.dtd (The filename, directory name, or volume label syntax is incorrect); at org.jdom.input.SAXBuilder.build(SAXBuilder.java:373); at org.jdom.input.SAXBuilder.build(SAXBuilder.java:673); at com.bt.emw.Versata.XmlDataFile.<init>(Unknown Source); at com.bt.emw.Versata.BaseData.read(Unknown Source); at com.bt.emw.Versata.VomStartup.startup(Unknown Source); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeStartup(ClassDeploymentManager.java:278); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClass(ClassDeploymentManager.java:256); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.access$000(ClassDeploymentManager.java:54); at weblogic.management.deploy.classdeployment.ClassDeploymentManager$1.run(ClassDeploymentManager.java:205); at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321); at weblogic.security.service.SecurityManager.runAs(Unknown Source); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClassDeployment(ClassDeploymentManager.java:198); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.runStartupsBeforeAppDeployments(ClassDeploymentManager.java:145); at weblogic.management.deploy.classdeployment.ClassDeploymentService.start(ClassDeploymentService.java:20); at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64); at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201); at weblogic.work.ExecuteThread.run(ExecuteThread.java:173);Caused by: java.io.FileNotFoundException: F:\STAA\anshu\StaaInfrastructure\staa\2.4.25.0\properties\file:\D:\STAA-DOMAIN\staa_domain\ConfigData.dtd (The filename, directory name, or volume label syntax is incorrect); at java.io.FileInputStream.open(Native Method); at java.io.FileInputStream.<init>(FileInputStream.java:106); at java.io.FileInputStream.<init>(FileInputStream.java:66); at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70); at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161); at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653); at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315); at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282); at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1176); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1075); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:993); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647); at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140); at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508); at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807); at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737); at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107); at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205); at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522); at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133); at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:172); at org.jdom.input.SAXBuilder.build(SAXBuilder.java:354); ... 16 more;java.io.FileNotFoundException: F:\anshu\dtd \file:\D:\anshu_domin\ScriptProperties.dtd (The filename, directory name, or volume label syntax is incorrect); at java.io.FileInputStream.open(Native Method); at java.io.FileInputStream.<init>(FileInputStream.java:106); at java.io.FileInputStream.<init>(FileInputStream.java:66); at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70); at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161); at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653); at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315); at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282); at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1176); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1075); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:993); at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647); at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140); at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508); at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807); at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737); at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107); at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205); at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522); at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133); at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:172); at org.jdom.input.SAXBuilder.build(SAXBuilder.java:354); at org.jdom.input.SAXBuilder.build(SAXBuilder.java:673); at com.bt.emw.Versata.XmlDataFile.<init>(Unknown Source); at com.bt.emw.Versata.BaseData.read(Unknown Source); at com.bt.emw.Versata.VomStartup.startup(Unknown Source); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeStartup(ClassDeploymentManager.java:278); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClass(ClassDeploymentManager.java:256); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.access$000(ClassDeploymentManager.java:54); at weblogic.management.deploy.classdeployment.ClassDeploymentManager$1.run(ClassDeploymentManager.java:205); at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321); at weblogic.security.service.SecurityManager.runAs(Unknown Source); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.invokeClassDeployment(ClassDeploymentManager.java:198); at weblogic.management.deploy.classdeployment.ClassDeploymentManager.runStartupsBeforeAppDeployments(ClassDeploymentManager.java:145); at weblogic.management.deploy.classdeployment.ClassDeploymentService.start(ClassDeploymentService.java:20); at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64); at weblogic.work.ExecuteThread.execute ============================================================================================================================Disclaimer: This message and the information contained herein is proprietary and confidential and subject to the Tech Mahindra policy statement, you may review the policy at <a href="http://www.techmahindra.com/Disclaimer.html">http://www.techmahindra.com/Disclaimer.html</a> externally and <a href="http://tim.techmahindra.com/Disclaimer.html">http://tim.techmahindra.com/Disclaimer.html</a> internally within Tech Mahindra.============================================================================================================================