Добрый день
Я искал в Интернете, и до сих пор следующее решение кажется наиболее близким к решению без каких-либо сторонних библиотек, но оно не работает. :(
У меня нет 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());