Como obter a conformidade do Apache XML-RPC 3.1.3 (formato de data ISO junto com o fuso horário) no Java 1.6

Estamos usando o Apache XML-RPC 3.1.3 para se comunicar com a solução de cobrança da Air. Na documentação, mencionamos que o apache xml-rpc segue o formato de data como java.util.Date '19980717T14: 08: 55', mas nosso fornecedor implementou a data como 'aaaamMMdd'T'HH: mm: ssZ' além do fuso horário :(

Depois de revisar a documentação, sabemos que precisamos desenvolver um tipo de dados personalizado para trabalhar com diferentes formatos de data ISO.http://ws.apache.org/xmlrpc/faq.html#nonstandard_date_format Tentamos continuar com o exemplo fornecido, mas acabamos com dois erros

1 - Variável pFormat não encontrada na classe MyTypeFactory.java

2 - nenhum construtor encontrado ao apontar essas alterações na classe do cliente client.setTypeFactory (new MyTypeFactory ());

Alguém pode nos corrigir se estiver faltando alguma coisa ou compartilhar outra maneira de implementar tipos de dados personalizados no Apache XML-RPC 3.1.3

Nosso código de classe de cliente é

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
        config.setServerURL(new URL("http://10.x.x.x:1234/Air"));
        config.setEnabledForExceptions(true);
        config.setBasicUserName("myUser");
        config.setBasicPassword("myPassword");
        config.setEncoding(XmlRpcClientConfigImpl.UTF8_ENCODING);

        config.setReplyTimeout(3 * 1000);
        config.setUserAgent("ITIVR/4.3/1.0"); //3.1 or 4.3
        client.setConfig(config);

        XmlRpcClient client = new XmlRpcClient();
        XmlRpcSunHttpTransport http = (XmlRpcSunHttpTransport) new XmlRpcSunHttpTransportFactory(client).getTransport();            

        Hashtable request = new Hashtable();
        request.put("originNodeType", new String("IVR"));
        request.put("originHostName", new String("ITIVR"));
        request.put("originTransactionID", new String(new SimpleDateFormat("ddMMyyyyHHmmss").format(new Date())));
        request.put("originTimeStamp", new Date());
        request.put("subscriberNumber", "0111111111");

        Vector v = new Vector();
        v.add(request);

        HashMap o =    (HashMap) http.sendRequest(new XmlRpcClientRequestImpl(config, "GetBalanceAndDate", v));

Neste código, estamos recebendo o erro 'Dados fora dos limites' porque não estamos passando data em formato inválido.

questionAnswers(1)

yourAnswerToTheQuestion