The code snippet below will show you how to unpack ISO 8583 message.
package org.kodejava.jpos;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.packager.GenericPackager;
import java.io.InputStream;
public class UnpackISOMessage {
public static void main(String[] args) {
UnpackISOMessage iso = new UnpackISOMessage();
try {
ISOMsg isoMsg = iso.parseISOMessage();
iso.printISOMessage(isoMsg);
} catch (Exception e) {
e.printStackTrace();
}
}
private ISOMsg parseISOMessage() throws Exception {
String message = "02003220000000808000000010000000001500120604120000000112340001840";
System.out.printf("Message = %s%n", message);
try {
// Load package from resources directory.
InputStream is = getClass().getResourceAsStream("/fields.xml");
GenericPackager packager = new GenericPackager(is);
ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packager);
isoMsg.unpack(message.getBytes());
return isoMsg;
} catch (ISOException e) {
throw new Exception(e);
}
}
private void printISOMessage(ISOMsg isoMsg) {
try {
System.out.printf("MTI = %s%n", isoMsg.getMTI());
for (int i = 1; i <= isoMsg.getMaxField(); i++) {
if (isoMsg.hasField(i)) {
System.out.printf("Field (%s) = %s%n", i, isoMsg.getString(i));
}
}
} catch (ISOException e) {
e.printStackTrace();
}
}
}
When you run the program you’ll get the following output:
Message = 02003220000000808000000010000000001500120604120000000112340001840
MTI = 0200
Field (3) = 000010
Field (4) = 000000001500
Field (7) = 1206041200
Field (11) = 000001
Field (41) = 12340001
Field (49) = 840
The xml packager (fields.xml
) can be downloaded from the following link: fields.xml.
Maven Dependency
<dependency>
<groupId>org.jpos</groupId>
<artifactId>jpos</artifactId>
<version>2.1.8</version>
</dependency>
Latest posts by Wayan (see all)
- How do I configure servlets in web.xml? - April 19, 2025
- How do I handle cookies using Jakarta Servlet API? - April 19, 2025
- How do I set response headers with HttpServletResponse? - April 18, 2025
Hello, can u tell me where can I get the packages as I am unable to run this piece of code.
Hi,
You can search the dependency library in the Maven Central Website. Here is the URL to the current version of jPOS library.
What we have to define in fields.xml
Hello Sumeet, here a link to an example of fields.xml file.
I am getting an exception
java.net.MalformedURLException
.Hi Pavan, was the error caused by the
fields.xml
could not be found? Instead of loading the packager file usinggetResourceAsStream()
you can just pass the full path of thefields.xml
to create an instance ofGenericPackager
.Change the following code:
To:
Hello Mr. I have the same error of malformed URL even when using the whole path. I wonder if there is any other dependency besides the jpos one? Thank you!
Hi Javier,
Can you show me the part of your code that load the packager?
Thanks
Hi, I am getting this error what do I do now ?
Can we parse and split multiple records which are on single line? like ISO packaged file contains all its records on single line. so by default it will unpack only first MTI record only.
Can we convert ISO message in to XML using jPOS library?
What should we add in fields.xml file? should it be empty?
Hi Charan,
Here is an example of fields.xml file.
Why this code doesn’t gives us Bitmap values as well? What changes will be needed if we want Bitmap fields too from ISO 8583 message.