wsclient.jar, созданный wsimport, не может быть использован

У меня есть файл wsdl, и я могу создать client.jar, набрав следующую команду.

wsimport -clientjar wsclient.jar mywsdl.wsdl.

Но когда я добавил этот файл jar в папку пути к классам eclipse, eclipse не обнаруживает классы внутри файла jar. С другой стороны, когда я создаю только файлы .class и указываю эту папку как папку classpath над eclipse, eclipse обнаруживает.

Еще одна попытка. Я каким-то образом создал файл .jar api, когда я переместил созданные классы артефактов в этот файл jar, eclipse также обнаруживает эти классы.

Эти попытки показывают мне, что файл jar, созданный wsimport -clientjar, не работает, как я смотрю, по крайней мере, для этого файла wsdl. На самом деле я не думаю, что wsimport не работает.

Что мне не хватает?


person Ahmet Karakaya    schedule 21.04.2014    source источник
comment
Eclipse просто издевается над вами: stackoverflow.com/questions/4628345/   -  person kolossus    schedule 23.04.2014


Ответы (1)


Я думаю, проблема в том, что параметры -clientjar не делают того, что вы ожидаете.

Параметр -clientjar предназначен для встраивания метаданных WSDL в вашу сборку, чтобы они могли стать частью jar-файла потребительского приложения. Таким образом, потребитель веб-службы не должен загружать WSDL каждый раз при его инициализации, а вместо этого может использовать WSDL, который связан с самим приложением.

При использовании параметра -clientjar происходит несколько вещей. Да, вы получите файл с именем wsclient.jar, как в вашем примере, но самое главное, что он генерирует файл META-INF/wsdl/<servicename>.wsdl, и на этот файл ссылаются в сгенерированном коде Java, готовом к использованию.

Я предлагаю взглянуть на сгенерированный код Java с параметром -clientjar и без него, тогда вы поймете, что я имею в виду.

См. ссылку для получения дополнительной информации.

person peterh    schedule 01.07.2014