Поэтому я пытаюсь использовать JaxWsDynamicClientFactory для динамического создания классов SEI. Выполнение кода ниже
JaxWsDynamicClientFactory def = JaxWsDynamicClientFactory.newInstance();
def.createClient("http://localhost:8080/TheTestService/TestService?wsdl");
генерирует классы:
com.mycompany.project.service.GetProducts
com.mycompany.project.service.GetStatus
работает:
wsdl2Java -d "C/:outputdir" "http://localhost:8080/TheTestService/TestService?wsdl"
генерирует классы
com.mycompany.project.service.ServiceInterface
com.mycompany.project.service.GetProducts
com.mycompany.project.service.GetStatus
com.mycompany.project.service.impl.ServiceInterface
Кроме того, когда я пытаюсь позвонить
client.invoke("getProducts", 0);
Я получаю:
org.apache.cxf.common.i18n.UncheckedException: No operation was found with the name {http://impl.service.project.mycompany.com/}getProducts.
, что, я думаю, имеет смысл, так как не будет ничего с именем getProducts, созданного на impl.service.project.mycompany.com. Однако, поскольку я написал веб-сервис, я точно знаю, что интерфейс веб-сервиса имеет метод getProducts (int id).
Что я здесь не так делаю? Согласно документации CXF, фабрика динамических клиентов использует тот же генератор кода, что и инструмент wsdl2Java. Если это так, почему не генерируются одинаковые классы?
Спасибо
Чак