Перейти к содержимому

Фотография

Сервисы через JavaClasses


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Lega

Lega

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Яцун Олег

Отправлено 13 апреля 2012 - 10:58

Принцип: мы локализируем Сервер, создаем сервисы (на основе интерфейсов API проекта), и с помощью функций этих интерфейсов по SOAP запрашиваем некие данные с Сервер.
С еклипса это получается легко (по представленному коду), а вот как это сделать с ТС? Будет ли ТС так работать с сервисами?

Код в скрипте ТС (JScript):
var conn = JavaClasses.common.Сonnection1.newInstance();
sessionInfo = conn.getSessionInfo(name, serverHost, serverPort, userID, userLogin, userPassword);
Скрипт падает на второй строке с ошибкой:
An exception occurred in the "Unit1" unit at line 11:
javax.xml.ws.WebServiceException: WSDL Metadata not available to create the proxy, either Service instance or ServiceEndpointInterface com.API.service.locator.LocatorServiceSoap should have WSDL information

Код в проимпортченом java классе:
public static SessionInfo getSessionInfo(String appName,
	String wfmServerHost, String wfmServerPort, int userID,
	String userLogin, String userPassword) {

LocatorServiceSoap locatorService = getServiceSoap(
		LocatorServiceSoap.class,
		"/Service/LocatorService.wsdl",
		"LocatorService", "LocatorServiceSoap",
		"http://ServerHost:ServerPort/?Handler=AService");
....
}

public static <T> T getServiceSoap(Class<T> klass, String wsdlLocation,
			String serviceName, String serviceSOAPName, String serverUrl) {
		URL tmpUrl = klass.getResource(wsdlLocation);
		Service srvc = Service.create(tmpUrl, new QName("urn:" + serviceName,
				serviceName));
		T rez = srvc.getPort(new QName("urn:" + serviceName, serviceSOAPName),
				klass);
		((BindingProvider) rez).getRequestContext().put(
				BindingProvider.ENDPOINT_ADDRESS_PROPERTY, serverUrl);
		return rez;
	}

TestComplete 8.0.290.7.
Java 1.6.0_31-b05

Спасибо за ответ.
  • 0

#2 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 16 апреля 2012 - 10:15

Здравствуйте.

1. У вас очень старая версия TestComplete. Обновитесь до последней, там много фиксов было - TestComplete 8.70.
2. А вы пробовали использовать фичу тестирования веб сервисов, встроенную в TestComplete?
3. По поводу ошибки могу посоветовать только погонять ваш Java код под дебаггером чтобы проверить значения, передаваемые TestComplete'ом.
  • 0
С уважением,
Дмитрий


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных