Я использую Metro 2.0 и J2SE5. Написанное мной приложение не знает о внешних WebService во время компиляции, оно находит их во время выполнения на основе XML-файла бизнес-логики, поэтому я выполняю запрос WSDL.
Пример кода, который я написал, выглядит следующим образом:
Я использую Metro 2.0 и J2SE5. Написанное мной приложение не знает о внешних WebService во время компиляции, оно находит их во время выполнения на основе XML-файла бизнес-логики, поэтому я выполняю запрос WSDL. Пример кода, который я написал, выглядит следующим образом: Я использую Metro 2.0 и J2SE5. Написанное мной приложение не знает о внешних WebService во время компиляции, оно находит их во время выполнения на основе XML-файла бизнес-логики, поэтому я выполняю запрос WSDL. Пример кода, который я написал, выглядит следующим образом: Тайм-аут работает правильно при вызове веб-службы (dispatcher.invoke (request)) ОДНАКО WSDL запрашивается до того, как установлены таймауты, и если веб-служба не отвечает до истечения времени ожидания соединения требуется 90 секунд. Можно ли установить время ожидания до запроса WSDL? Вам нужен диспетчер для установки тайм-аутов, но это делается ПОСЛЕ создания службы, которая запрашивает WSDL ?! (т.е. Service.create ())
Строка wsdlServiceName = ...; он находит их во время выполнения на основе XML-файла бизнес-логики, поэтому я ...
Строка wsdlServiceName = ...; он находит их во время выполнения на основе XML-файла бизнес-логики, поэтому я ...
Строка wsdlServiceName = ...;
Строка wsdlURL = ...;
Полезная нагрузка документа = ...;
final String nsURI = ...;
final QName serviceName = new QName(nsURI, wsdlServiceName + "Service");
final QName servicePort = new QName(nsURI, wsdlServiceName + "Port");
// Create service and the dispatcher for the SOAP message
Service service = Service.create(new URL(wsdlURL), serviceName);
dispatch = service.createDispatch(servicePort, SOAPMessage.class, Service.Mode.MESSAGE);
// Set timeouts
dispatch.getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 3000);
dispatch.getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 3000);
// Create the outgoing SOAP request
SOAPBinding soapBinding = (SOAPBinding) dispatch.getBinding();
request = soapBinding.getMessageFactory().createMessage();
SOAPBody requestBody = request.getSOAPBody();
requestBody.addDocument(payload);
// Invoke web service operation
SOAPMessage response = dispatch.invoke(request);