WSDL-запросы с Metro / JAX-WS / WSIT во время выполнения - PullRequest
0 голосов
/ 30 ноября 2010

Во время выполнения JAX-WS извлекает WSDL конечной точки SOAP, даже если он уже выполнил wsimport в IDE.Это поведение иллюстрируется здесь: http://jax -ws.java.net / faq / index.html # wsdl_at_runtime

Существует ли ограничение на количество метаданных, которые клиент может извлечь во время выполнения?Если да, есть ли способ увеличить этот лимит?

Обратите внимание, что я не имею в виду запуск wsimport в IDE;это отлично работаетЯ специально говорю о получении метаданных WSDL во время выполнения.

Ответы [ 3 ]

1 голос
/ 13 января 2011

После долгих часов, потраченных на эту проблему, мы нашли решение.Я работал в среде Glassfish с Metro в Netbeans.Если мы скопировали WEB-INF в папку с исходными файлами, все заработало.Среда выполнения Java теперь может связываться с относительным путем в файле jaxws-catalog.xml.Без копирования этой папки она не будет работать.

1 голос
/ 08 сентября 2011

Metro / JAX-WS-ri требует WSDL во время выполнения, период.См. http://jax -ws.java.net / faq / index.html # wsdl_at_runtime для объяснения.

Чтобы предотвратить выборку WSDL во время выполнения, вы должны упаковать его как ресурс и предоставитьпри создании прокси-фабрики:

new XYZ_Service( XYZ_Service.class.getResource( "/path/to/your/XYZ.wsdl" ), new QName( "NameSpace", "ServiceName" ) );
0 голосов
/ 13 декабря 2010

Исходя из того, что вы обращаетесь к Metro FAQ, вы, очевидно, прочитали о причинах того, почему копия WSDL все еще необходима во время выполнения.Чтобы повторить FAQ, причина в том, чтобы иметь возможность поддерживать расширения WS- *, у которых нет соответствующих аннотаций Java.

В настоящее время в Metro нет возможности отключить поддержку расширений и, как следствие, нет способа обойтинеобходимость WSDL во время выполнения.

...