Я использую следующую логику при работе с SOAPClient:
public function executeSoapCall($method, $params)
{
try {
$client = $this->tryGetSoapClient();
$timeout = ini_get('default_socket_timeout');
ini_set('default_socket_timeout', 60);//set new timeout value - 60 seconds
$client->__soapCall($method, $params);//execute SOAP call
ini_set('default_socket_timeout', $timeout);//revert timeout back
} catch (\Throwable $e) {
if (isset($timeout)) {
ini_set('default_socket_timeout', $timeout);//revert timeout back
}
}
}
protected function tryGetSoapClient()
{
$timeout = ini_get('default_socket_timeout');//get timeout (need to be reverted back afterwards)
ini_set('default_socket_timeout', 10);//set new timeout value - 10 seconds
try {
$client = new \SoapClient($this->wsdl, $this->options);//get SOAP client
} catch (\Throwable $e) {
ini_set('default_socket_timeout', 10);//revert back in case of exception
throw $e;
}
$this->iniSetTimeout($timeout);//revert back
return $client;
}
Это помогает мне ждать до 10 секунд для установления соединения и 60 секунд для выполнения вызова.
Наконец-то я сам нашел решение (или, по крайней мере, обходной путь). Я читал о Spoon на SO. Это программный процессор Java, который позволяет читать и изменять исходные файлы Java. Его даже можно использовать как плагин Eclipse или скрипт Ant / Maven.
Все, что вам нужно сделать, это расширить AbstractProcessor, который будет обрабатывать метод. Если имя метода начинается с get / set, он ищет соответствующее поле, извлекает его комментарий и заменяет или расширяет им комментарий аксессоров.
У меня есть небольшой скрипт ant, который берет все мои исходники и обрабатывает их.
Что-то интегрированное в шаблоны кода eclipses, конечно, было бы удобнее, но пока этот способ подходит!
if you use Eclipse's tool to override/implement methods... from the source menu, there is an option to automatically generate javadoc comments. there are comment templates that you can modify in preferences->java->code style -> code templates -> comments.
Если бы у вас был язык макросов, вы могли бы написать такую функцию, как «открыть всплывающее окно, которое позволяет мне ввести некоторый текст, а затем сгенерирует методы получения и установки, включая его javadoc, на основе шаблонов. ".
Eclipse на самом деле не имеет реальной поддержки такого макроязыка, но, может быть, вы все равно могли бы взглянуть на: Есть ли средство записи макросов для Eclipse?
Если вы не хотите переключаться между eclipse и другой инструмент, тогда вы можете попробовать JEdit (jedit.org), который включает мощный макроязык beanshell. Таким образом, вы можете открыть eclipse и jedit, перетащить файл, который хотите обработать, из eclipse в jedit, вы используете мощность макросов jedit, затем сохраните файл и, наконец, обновите файл в eclipse.
Это немного раздражает , но для некоторых обработок я успешно применил этот способ.
Плагин JavadocWriter для IntelliJ IDEA говорит, что он выполняет «умное копирование javadoc из поля в средство доступа». Предостережение, утилита: я сам не пробовал плагин, и он не обновлялся уже 3 года.
IMHO Если комментарии могут быть созданы автоматически, они не добавляют особой ценности.
Если вы вызвали свой метод getDynamicStrategyName (), вам не нужно его комментировать, так как имя содержит всю информацию, которую вы поместили бы в комментарий.