Таймауты SoapConnection не работают в wildfly 10

Добрый день

Я искал в Интернете, и до сих пор следующее решение кажется наиболее близким к решению без каких-либо сторонних библиотек, но оно не работает. :(

У меня нет wsdl, я могу заглушить. Я вызываю внешний веб-сервис и просто передаю мыльное сообщение.

Я тестировал тот же код без контейнера, т.е. в основном методе в моем ide, и он работает там, когда я развертываю на wildfly10, похоже, что он игнорируется или переопределяется jboss.

Я не могу найти какие-либо свойства в файле standalone.xml для редактирования, чтобы изменить настройки времени ожидания чтения, и это должно быть только для этого вызова веб-службы.

Мой ЖУРНАЛ отладки ничего не печатает в журналах, что говорит о том, что он не выполняется. Я ожидаю немедленной ошибки из-за setReadTimeout(1);

У кого-нибудь есть идеи?

SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
URL endpoint = new URL (null, ENDPOINT, new URLStreamHandler() {    
        @Override
        protected URLConnection openConnection(URL u) throws IOException {
            LOG.debug("1.");
             URL clone = new URL (u.toString ());
             LOG.debug("2.");
             URLConnection connection = clone.openConnection ();
             LOG.debug("3.");
             connection.setConnectTimeout (10000);//10 seconds 
             LOG.debug("4.");
             connection.setReadTimeout (1);//1 ms
             LOG.debug("5.");
            return connection;
        }
    });

    SOAPMessage soapResponse = soapConnection.call(soapMsg, endpoint);

Если я отредактирую строку вызова следующим образом, время ожидания чтения сработает, но я получу http 500, но URL-адрес правильный:

SOAPMessage soapResponse = soapConnection.call(soapMsg, endpoint.getContent());

person kwm    schedule 01.11.2016    source источник
comment
Вы случайно не пытаетесь распечатать содержимое вашего SOAP-сообщения перед тем, как позвонить?   -  person mwangi    schedule 01.11.2016
comment
Я на самом деле. Я регистрирую все сообщение перед его отправкой в ​​целях отладки.   -  person kwm    schedule 01.11.2016
comment
Не регистрируйте сообщения перед отправкой. По какой-то причине это очищает ваше мыльное сообщение. Закомментируйте любой код, который регистрирует или распечатывает сообщение SOAP перед его первой отправкой. Теперь это должно работать.   -  person mwangi    schedule 02.11.2016
comment
Я удалил все записи в приложении. Все равно не сработает. Я не уверен, что вы подразумеваете под очисткой мыльного сообщения?   -  person kwm    schedule 02.11.2016
comment
Как вы регистрировали soapMsg перед удалением?   -  person mwangi    schedule 02.11.2016
comment
Скопировал мыльное сообщение, написал в bytearrayoutputstream, записал в строку как utf-8. Записал эту строку с помощью slf4j Logger   -  person kwm    schedule 04.11.2016


Ответы (1)


Не регистрируйте сообщения перед отправкой. По какой-то причине это очищает ваше мыльное сообщение. Закомментируйте любой код, который регистрирует или распечатывает сообщение SOAP перед его первой отправкой. Теперь это должно работать.

person mwangi    schedule 02.11.2016