Клиент веб-службы (апплет) продолжает запрашивать "/META-INF/services/javax.xml.ws.spi.provider" - PullRequest
1 голос
/ 03 ноября 2011

Рассмотрим следующий фрагмент кода, запущенный в апплете в браузере:

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).

Все работает отлично, за исключением того, что я заметил два следующих раздражителя:

  1. Требуется много времени для выполнения фрагмента кода, указанного выше
  2. Сетевые трассировки показывают, что клиент отправляет 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 мс?

1 Ответ

0 голосов
/ 10 ноября 2011

Передайте этот параметр апплету:

codebase_lookup = false
...