返回列表 上一筆 下一筆

📄 資料內容

import org.apache.axis.message.MessageElement;

import org.w3c.dom.*;

import java.util.*;



public List<KBAttachDTO> getKBAttachList(int ifqSid, String userType) throws Exception {

    List<KBAttachDTO> listOut = new ArrayList<>();



    IQKB_XMLSoapProxy service = new IQKB_XMLSoapProxy();

    WsGetKBAttachResponseWsGetKBAttachResult result =

            service.wsGetKBAttach(strValidCode, 1, channelMap.get(userType), ifqSid);



    MessageElement[] anyArr = result.get_any();



    // keep original logs

    LOGGER.info(vaildLog("### method:getKBAttachList, webservice:wsGetKBAttach"));

    LOGGER.info(vaildLog("### req:" + "wsGetKBAttach(" + strValidCode + ", 1, "

            + channelMap.get(userType) + ", " + ifqSid + ")"));

    LOGGER.info(vaildLog("### anyData:" + (anyArr != null && anyArr.length > 0 ? anyArr[0] : "null")));



    if (anyArr == null || anyArr.length == 0) return listOut;



    // 1) find <diffgram>

    Element diffgram = null;

    for (MessageElement me : anyArr) {

        String ln = me.getLocalName();

        if ("diffgram".equalsIgnoreCase(ln)) { diffgram = me; break; }

    }

    if (diffgram == null) return listOut;



    // 2) enter <IQKB>

    Element dataRoot = firstChildElementByLocalName(diffgram, "IQKB");

    if (dataRoot == null) dataRoot = diffgram;



    // 3) each row is <KBAttach>

    NodeList rows = dataRoot.getElementsByTagName("KBAttach");

    if (rows == null || rows.getLength() == 0) return listOut;



    for (int i = 0; i < rows.getLength(); i++) {

        Element row = (Element) rows.item(i);



        KBAttachDTO dto = new KBAttachDTO.Builder()

                .ifaaSid(getChildText(row, "ifaa_sid"))

                .source(getChildText(row, "sfaa_source"))

                .name(getChildText(row, "sfaa_name"))

                .webFile(getChildText(row, "sWebFile"))

                .size(getChildText(row, "ifaa_size"))

                .build();



        listOut.add(dto);

    }



    LOGGER.info("getKBAttachList: rows=" + rows.getLength() + ", mapped=" + listOut.size());

    return listOut;

}

🔐 Base64 編碼內容

aW1wb3J0IG9yZy5hcGFjaGUuYXhpcy5tZXNzYWdlLk1lc3NhZ2VFbGVtZW50OwoKaW1wb3J0IG9yZy53M2MuZG9tLio7CgppbXBvcnQgamF2YS51dGlsLio7CgoKCnB1YmxpYyBMaXN0PEtCQXR0YWNoRFRPPiBnZXRLQkF0dGFjaExpc3QoaW50IGlmcVNpZCwgU3RyaW5nIHVzZXJUeXBlKSB0aHJvd3MgRXhjZXB0aW9uIHsKCiAgICBMaXN0PEtCQXR0YWNoRFRPPiBsaXN0T3V0ID0gbmV3IEFycmF5TGlzdDw+KCk7CgoKCiAgICBJUUtCX1hNTFNvYXBQcm94eSBzZXJ2aWNlID0gbmV3IElRS0JfWE1MU29hcFByb3h5KCk7CgogICAgV3NHZXRLQkF0dGFjaFJlc3BvbnNlV3NHZXRLQkF0dGFjaFJlc3VsdCByZXN1bHQgPQoKICAgICAgICAgICAgc2VydmljZS53c0dldEtCQXR0YWNoKHN0clZhbGlkQ29kZSwgMSwgY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpLCBpZnFTaWQpOwoKCgogICAgTWVzc2FnZUVsZW1lbnRbXSBhbnlBcnIgPSByZXN1bHQuZ2V0X2FueSgpOwoKCgogICAgLy8ga2VlcCBvcmlnaW5hbCBsb2dzCgogICAgTE9HR0VSLmluZm8odmFpbGRMb2coIiMjIyBtZXRob2Q6Z2V0S0JBdHRhY2hMaXN0LCB3ZWJzZXJ2aWNlOndzR2V0S0JBdHRhY2giKSk7CgogICAgTE9HR0VSLmluZm8odmFpbGRMb2coIiMjIyByZXE6IiArICJ3c0dldEtCQXR0YWNoKCIgKyBzdHJWYWxpZENvZGUgKyAiLCAxLCAiCgogICAgICAgICAgICArIGNoYW5uZWxNYXAuZ2V0KHVzZXJUeXBlKSArICIsICIgKyBpZnFTaWQgKyAiKSIpKTsKCiAgICBMT0dHRVIuaW5mbyh2YWlsZExvZygiIyMjIGFueURhdGE6IiArIChhbnlBcnIgIT0gbnVsbCAmJiBhbnlBcnIubGVuZ3RoID4gMCA/IGFueUFyclswXSA6ICJudWxsIikpKTsKCgoKICAgIGlmIChhbnlBcnIgPT0gbnVsbCB8fCBhbnlBcnIubGVuZ3RoID09IDApIHJldHVybiBsaXN0T3V0OwoKCgogICAgLy8gMSkgZmluZCA8ZGlmZmdyYW0+CgogICAgRWxlbWVudCBkaWZmZ3JhbSA9IG51bGw7CgogICAgZm9yIChNZXNzYWdlRWxlbWVudCBtZSA6IGFueUFycikgewoKICAgICAgICBTdHJpbmcgbG4gPSBtZS5nZXRMb2NhbE5hbWUoKTsKCiAgICAgICAgaWYgKCJkaWZmZ3JhbSIuZXF1YWxzSWdub3JlQ2FzZShsbikpIHsgZGlmZmdyYW0gPSBtZTsgYnJlYWs7IH0KCiAgICB9CgogICAgaWYgKGRpZmZncmFtID09IG51bGwpIHJldHVybiBsaXN0T3V0OwoKCgogICAgLy8gMikgZW50ZXIgPElRS0I+CgogICAgRWxlbWVudCBkYXRhUm9vdCA9IGZpcnN0Q2hpbGRFbGVtZW50QnlMb2NhbE5hbWUoZGlmZmdyYW0sICJJUUtCIik7CgogICAgaWYgKGRhdGFSb290ID09IG51bGwpIGRhdGFSb290ID0gZGlmZmdyYW07CgoKCiAgICAvLyAzKSBlYWNoIHJvdyBpcyA8S0JBdHRhY2g+CgogICAgTm9kZUxpc3Qgcm93cyA9IGRhdGFSb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJLQkF0dGFjaCIpOwoKICAgIGlmIChyb3dzID09IG51bGwgfHwgcm93cy5nZXRMZW5ndGgoKSA9PSAwKSByZXR1cm4gbGlzdE91dDsKCgoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93cy5nZXRMZW5ndGgoKTsgaSsrKSB7CgogICAgICAgIEVsZW1lbnQgcm93ID0gKEVsZW1lbnQpIHJvd3MuaXRlbShpKTsKCgoKICAgICAgICBLQkF0dGFjaERUTyBkdG8gPSBuZXcgS0JBdHRhY2hEVE8uQnVpbGRlcigpCgogICAgICAgICAgICAgICAgLmlmYWFTaWQoZ2V0Q2hpbGRUZXh0KHJvdywgImlmYWFfc2lkIikpCgogICAgICAgICAgICAgICAgLnNvdXJjZShnZXRDaGlsZFRleHQocm93LCAic2ZhYV9zb3VyY2UiKSkKCiAgICAgICAgICAgICAgICAubmFtZShnZXRDaGlsZFRleHQocm93LCAic2ZhYV9uYW1lIikpCgogICAgICAgICAgICAgICAgLndlYkZpbGUoZ2V0Q2hpbGRUZXh0KHJvdywgInNXZWJGaWxlIikpCgogICAgICAgICAgICAgICAgLnNpemUoZ2V0Q2hpbGRUZXh0KHJvdywgImlmYWFfc2l6ZSIpKQoKICAgICAgICAgICAgICAgIC5idWlsZCgpOwoKCgogICAgICAgIGxpc3RPdXQuYWRkKGR0byk7CgogICAgfQoKCgogICAgTE9HR0VSLmluZm8oImdldEtCQXR0YWNoTGlzdDogcm93cz0iICsgcm93cy5nZXRMZW5ndGgoKSArICIsIG1hcHBlZD0iICsgbGlzdE91dC5zaXplKCkpOwoKICAgIHJldHVybiBsaXN0T3V0OwoKfQo=
返回列表 上一筆 下一筆