Как получить соответствие Apache XML-RPC 3.1.3 (формат даты ISO вместе с часовым поясом) в Java 1.6

Мы используем Apache XML-RPC 3.1.3 для связи с биллинговым решением Air. В документации упоминается, что apache xml-rpc следует формату даты как java.util.Date '19980717T14: 08: 55', но наш поставщик внедрил дату как 'yyyyMMdd'T'HH: mm: ssZ' с часовым поясом :(

Изучив документацию, мы узнаем, что нам нужно разработать собственный тип данных для работы с другим форматом даты ISO.http://ws.apache.org/xmlrpc/faq.html#nonstandard_date_format Мы попытались продолжить с предоставленным примером, но в итоге получили две ошибки

1 - переменная pFormat не найдена в классе MyTypeFactory.java

2 - конструктор не найден при указании этих изменений в клиентском классе client.setTypeFactory (new MyTypeFactory ());

Может кто-нибудь исправить нас, если мы что-то упустили, или поделиться каким-либо другим способом реализации пользовательских типов данных в Apache XML-RPC 3.1.3

Наш код класса клиента

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));

В этом коде мы получаем ошибку «Данные вне границ», потому что мы не передаем дату в недопустимом формате.

Ответы на вопрос(1)

Ваш ответ на вопрос