lundi 30 mars 2015

SAXParser to parse XML data from CLOB in Java-Hibernate

I'm working on a web application that uses Spring MVC and Hibernate,


I want to parse a XML data from CLOB and print it, I was follow this tutorial thinktibits and mkyong but I got stuck from this point, I can't print the xml element that I want,


this is my code,



@RequestMapping(value="/admin/Detail-BPJS-TK.html")
public ModelAndView listDetailBPJSTK(ModelMap model, HttpServletRequest request, HttpServletResponse response)throws ParserConfigurationException, SAXException, Exception{
if(!((request.getParameter("MESSAGEID")) == null)){
String MESSAGEID = request.getParameter("MESSAGEID");
System.out.println(MESSAGEID);
//140721438362
//DetailBPJS detailbpjs = detailbpjsService.get(MESSAGEID);

//String tes = detailbpjs.getMESSAGEID();
//System.out.println(tes);

Configuration cfg = new Configuration();
cfg.configure("hibernatesoaappbpjstk.cfg.xml");

SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();

String pay = "PAYMENT";
String sub = "PROCESSED";

Query query = session.createQuery("from DetailBPJS where TRANSACTION = :tra and SUBTRANSACTION = :sub and MESSAGEID = :mes");
query.setParameter("tra", pay);
query.setParameter("sub", sub);
query.setParameter("mes", MESSAGEID);

@SuppressWarnings("unchecked")
List <DetailBPJS> result = query.list();

if(result.isEmpty()){
System.out.println("Please, check the 'No. Billing' again!!");
System.out.println(MESSAGEID);
model.addAttribute("errorMessageBPJSTK", "true");
}else{
DetailBPJS data = (DetailBPJS)result.get(0);
String nom1 = data.getTRANSACTION();
String nom2 = data.getSUBTRANSACTION();
String nom3 = data.getUUID();
Clob nom4 = data.getRAWDATA();

System.out.println(nom1 + " - " + nom2 + " - " + nom3 + " - " + nom4);
//140721438362

//convert clob to java.io.reader
Reader myclob = nom4.getCharacterStream();

//create InputSource from Reader
InputSource myinput = new InputSource(myclob);

try {

SAXParserFactory factoryz = SAXParserFactory.newInstance();
SAXParser saxParser = factoryz.newSAXParser();

DefaultHandler handler = new DefaultHandler(){
boolean b_krb = false;
boolean b_reqid = false;
boolean b_ch = false;
boolean b_kb = false;
boolean b_tgl = false;
boolean tot = false;
boolean jht = false;
boolean jkk = false;
boolean jkm = false;

@SuppressWarnings("unused")
public void startElements(String uri, String localName, String qName, Attributes attributes) throws SAXException{
if (qName.equalsIgnoreCase("bpjs:kodeRefBank")){
b_krb = true;
System.out.println("yup");
}
if (qName.equalsIgnoreCase("bpjs:reqId")){
b_reqid = true;
}
if (qName.equalsIgnoreCase("bpjs:chId")){
b_ch = true;
}
if (qName.equalsIgnoreCase("bpjs:kodeBank")){
b_kb = true;
}
if (qName.equalsIgnoreCase("bpjs:tglTrx")){
b_tgl = true;
}
if (qName.equalsIgnoreCase("totalAmount")){
tot = true;
}
if (qName.equalsIgnoreCase("amountJHT")){
jht = true;
}
if (qName.equalsIgnoreCase("amountJKK")){
jkk = true;
}
if (qName.equalsIgnoreCase("amountJKM")){
jkm = true;
}
}

@SuppressWarnings("unused")
public void character(char ch[], int start, int length) throws SAXException{
if (b_krb){
System.out.println("(1) Value Of KodeRefBank : " + new String(ch, start, length));
b_krb = false;
}
if (b_reqid){
System.out.println("(2) Value Of ReqId : " + new String(ch, start, length));
b_reqid = false;
}
if (b_ch){
System.out.println("(3) Value Of ChId : " + new String(ch, start, length));
b_ch = false;
}
if (b_kb){
System.out.println("(4) Value Of KodeBank : " + new String(ch, start, length));
b_kb = false;
}
if (b_tgl){
System.out.println("(5) Value Of TglTrx : " + new String(ch, start, length));
b_tgl = false;
}
if (tot){
System.out.println("(6) Value Of Tot : " + new String(ch, start, length));
tot = false;
}
if (jht){
System.out.println("(7) Value Of JHT : " + new String(ch, start, length));
jht = false;
}
if (jkk){
System.out.println("(8) Value Of JKK : " + new String(ch, start, length));
jkk = false;
}
if (jkm){
System.out.println("(9) Value Of JKM : " + new String(ch, start, length));
jkm = false;
}
}
};
saxParser.parse(myinput, handler);

} catch (Exception e) {
e.printStackTrace();

// TODO: handle exception
}

//SAX Parser to parse this xml

}
session.close();
factory.close();
}else{
System.out.println("Please, check the 'No. Billing' again!!");
String MESSAGEID = request.getParameter("MESSAGEID");
System.out.println(MESSAGEID);
model.addAttribute("errorMessageBPJSTK", "true");
}

return listDetailBPJS(model);
}

Aucun commentaire:

Enregistrer un commentaire