Невозможно построить jaxbContext - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь создать jaxbContext, используя шаблон синглтона, но это не удается. Если я не использую singleton и делаю jaxbContext.newInstance (TelephoneNumberList.class), это работает. Но я хотел бы, чтобы jaxbContext создавался один раз.


package com.spectrum.sci.util;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import com.spectrum.sci.exception.OSMException;
import com.spectrum.sci.model.TelephoneNumberList;

@Component
public class JaxbContextHelperForTelephoneNumberList {

        private static final Logger log = LoggerFactory.getLogger(JaxbContextHelperForTelephoneNumberList.class);

        private static JAXBContext jaxbContextTelephoneNumberList;

        private JaxbContextHelperForTelephoneNumberList() {
        }

        public static JAXBContext getJaxbContextInstanceForTelephoneNumberList() {
            log.info("Entering getJaxbContextInstanceForTelephoneNumberList...");
            try {
                Class<TelephoneNumberList> telephoneNumberList = TelephoneNumberList.class;
                if (jaxbContextTelephoneNumberList == null) {
                    jaxbContextTelephoneNumberList = JAXBContext.newInstance(telephoneNumberList);
                }
            } catch (JAXBException e) {
                throw new OSMException("Unable to construct jaxbContextTelephoneNumberList...");
            }
            return jaxbContextTelephoneNumberList;
        }

}

OrderUtil class calling JaxbContextHelperForTelephoneNumberList.getJaxbContextInstanceForTelephoneNumberList()

//Convert Xml String to TelephoneNumberList
    public static TelephoneNumberList convertXmlStringToJavaObj(String xmlString) {
            log.info("Entering TelephoneNumberList..." + xmlString );
            JAXBContext jaxbContext;
            try {           
                jaxbContext = JaxbContextHelperForTelephoneNumberList.getJaxbContextInstanceForTelephoneNumberList();
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

                StringReader reader = new StringReader(xmlString);
                StreamSource inputSource = new StreamSource(reader);
                TelephoneNumberList msg = unmarshaller.unmarshal(inputSource,TelephoneNumberList.class).getValue();
                return msg;
            } catch (JAXBException e) {
                throw new OSMException("Unable to Convert XML String to Java Objects " + e.getMessage(), e);
            }

    }

Я получаю сообщение об ошибке "Сообщение об исключении = Ошибка в OrderDetailsService - getTelephoneNumberList Невозможно создать jaxbContext"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...