mkyong / core-java Goto Github PK
View Code? Open in Web Editor NEWList of core Java source code
License: MIT License
List of core Java source code
License: MIT License
I have java19 and 20 installed on Eclipse 06-2023. I also installed maven with your pom.xml. Here are the issues.
1). Alexa.com disabled their service around 2021/2022. Thus the two alexa java files crash when running as java application regardless in run on maven setup or the JDT default Eclips 06-2023.
2). The following three files ReadXmlParser, ReadXmlParserLoop and ReadXmSaxParser2 will work in a Maven setup but will not run in a default JDT Eclipse 06-2023 setup with java 19 and all the java file dependencies imported one-by-one.
ReadXmlParser
Exception in thread "main" java.lang.IllegalArgumentException: InputStream cannot be null
at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:118)
at com.mkyong.xml.dom.ReadXmlDomParser.main(ReadXmlDomParser.java:36)
ReadXmlParserLoop
Exception in thread "main" java.lang.IllegalArgumentException: InputStream cannot be null
at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:118)
at com.mkyong.xml.dom.ReadXmlDomParserLoop.main(ReadXmlDomParserLoop.java:30)
ReadXmlSaxParser2
java.net.MalformedURLException: Cannot invoke "String.length()" because "spec" is null
at java.base/java.net.URL.<init>(URL.java:798)
at java.base/java.net.URL.<init>(URL.java:646)
at java.base/java.net.URL.<init>(URL.java:582)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:651)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:861)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
at com.mkyong.xml.sax.ReadXmlSaxParser2.main(ReadXmlSaxParser2.java:45)
Caused by: java.lang.NullPointerException: Cannot invoke "String.length()" because "spec" is null
at java.base/java.net.URL.<init>(URL.java:704)
... 10 more
3). The ReadXmlSaxParserXXE will not run on a maven setup using your pom.xml file, nor on the defaul JDT Eclipse 06-2023 install.
Start Document
org.xml.sax.SAXParseException; systemId: file:///C:/Users/myinc/eclipse-workspace/Lang_Java/Java_Code/src/main/resources/staff-xxe.xml; lineNumber: 2; columnNumber: 10; DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:898)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:326)
at java.xml/javax.xml.parsers.SAXParser.parse(SAXParser.java:276)
at com.mkyong.xml.sax.ReadXmlSaxParserXXE.main(ReadXmlSaxParserXXE.java:32)
Other than this, the result of the java files will run on both the maven setup and the default JDT setup for Eclipse 06-2023.
I'm still pretty new to Eclipse, and looking at these example files to see how these work.
Reading the File works when app is executed from the IDE, but if you compile and execute:
javac Main.java
java Main
then it throws:
Exception in thread "main" java.lang.IllegalArgumentException: File: app.log not found.
at ResourceHelper.getAbsoluteFilePath(ResourceHelper.java:11)
at Main.main(Main.java:15)
ResourceHelper.java:
public class ResourceHelper {
public static String getAbsoluteFilePath(String filename) {
URL resource = ClassLoader.getSystemClassLoader().getResource(filename);
if (resource == null) {
throw new IllegalArgumentException("File: " + filename + " not found.");
}
try {
Path path = Paths.get(resource.toURI());
return path.toString();
} catch (URISyntaxException e) {
throw new IllegalArgumentException(e.getMessage());
}
}
}
Any suggestion to solve this?
When you add printing value of staff node, it turns out that it has the value of the last nested node (bio):
@Override
public void endElement(String uri,
String localName,
String qName) {
...
if (qName.equalsIgnoreCase("staff")) {
System.out.printf("staff : %s%n", currentValue.toString());
}
}
console before:
End Element : bio
Bio : HTML tag <code>testing</code>
End Element : staff
Start Element : staff
Staff id : 1002
console after:
Bio : HTML tag <code>testing</code>
End Element : staff
staff : HTML tag <code>testing</code>
Start Element : staff
Staff id : 1002
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.