Рассмотрим следующий фрагмент кода, запущенный в апплете в браузере:
WebServiceClient s = MyWS_Service.class.getAnnotation(WebServiceClient.class);
String servicePath = pathName;
String wsdlLocation = "http//host.dns.name:80/MYWSAPP/MyWS?wsdl";
MyWS_Service service = null;
WebServiceClient s = MyWSService.class.getAnnotation(WebServiceClient.class);
try{
wsdlURL = new URL(wsdlLocation);
service = new myWSService(wsdlURL, new QName(s.targetNamespace(), s.name()));
myWS = service.getMyWSSOAP();
}catch (MalformedURLException e){
System.out.println ("unable to create wsdlURL = "+wsdlLocation);
}
Если myWS был создан без проблем, я использую его для вызова методов веб-службы (веб-служба использует Metro и выполняетна Tomcat).
Все работает отлично, за исключением того, что я заметил два следующих раздражителя:
- Требуется много времени для выполнения фрагмента кода, указанного выше
- Сетевые трассировки показывают, что клиент отправляет HTTP-запросы GET для: /MYWSAPP/META-INF/services/javax.xml.ws.spi.provider и /MYWSAPP/META-INF/services/javax.xml.stream.XMLInputFactory.
Ответом на эти запросы GET является HTTP / 1.1 404. Not Found.
Есть мысли о том, как предотвратить эти ненужные запросы HTTP GET?Также разумно ли, чтобы выполнение приведенного выше кода занимало примерно 3 секунды, тогда как для выполнения реальных вызовов веб-служб требуется менее 100 мс?