| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > проблемы с клиентом |
| Автор: Athlon 24.2.2009, 12:00 | ||||
| Доброго времени суток. Столкнулся с необходимостью дописать к своему приложению СОАП клиента. Имеется WSDL вэб сервиса с которым мое приложение будет взамодействовать. С помощью wsimport сгенерировал код, с помощью SoapUI создал эмулятор сторонего вэб сервиса, написал простенький тестовый пример:
Возникла следующая проблема - вэб сервис в SoapUI получает сообщение, а тестовый пример при отправке сообщения ругается таким вот эксепшеном:
В гугле нашел что помогает "One way to fix this is to copy jaxws-api.jar and jaxb-api.jar into JRE endorsed directory, which is $JAVA_HOME/lib/endorsed", но у меня после копирования этих Jar'ов оказалось что "Provider com.sun.xml.ws.spi.ProviderImpl not found", какие еще jar'ы нада скопировать я не подобрал. Вобщем я в полной растеряности, буду рад любой помощи. |
| Автор: XupyprMV 2.3.2009, 16:29 | ||
| Подобные ошибки получал только при попытке парсинга XML не в той кодировке (если не изменяет память пытался парсить cp1251 файл в utf8-кодировке). Я делаю достаточно просто: генерю артефакты клиента для веб-сервиса при помощи wsimport, затем создаю инвокер используя сгенеренные классы:
После этого остаётся использовать инвокер для вызова веб-методов. Пы. Сы. Ещё помнится раньше была беда с тем что в 6-й яве некорректно работали веб-сервисы написанные под 5-й явой с использованием jaxws-api-2.1.2.jar (ибо в 6-ю версию уже встроена эта библиотека, но более ранней версии). Эту проблему я решал с использованием endorsed. Конкретно по библиотекам, которые я изменял: activation-2.1.2.jar jaxb-impl-2.1.2.jar jtds-1.2.jar spring-beans-2.5.4.jar commons-codec-1.3.jar jaxb-xjc-2.1.2.jar spring-core-2.5.4.jar commons-logging-1.1.1.jar jaxws-api-2.1.2.jar stax-api-1.0.1.jar FastInfoset-2.1.2.jar jaxws-rt-2.1.2.jar stax-ex-2.1.2.jar jaxws-tools-2.1.2.jar resolver-2.1.2.jar streambuffer-2.1.2.jar jsr173_api-2.1.2.jar saaj-api-2.1.2.jar wstx-asl-3.2.0.jar http-2.1.2.jar jsr181-api-2.1.2.jar saaj-impl-2.1.2.jar jaxb-api-2.1.2.jar jsr250-api-2.1.2.jar sjsxp-2.1.2.jar Возможно библиотеки jtds-1.2.jar, spring-core-2.5.4.jar и spring-core-2.5.4.jar тут лишние (давно было - не помню точно) |
| Автор: XupyprMV 2.3.2009, 21:24 |
| Попробовал сам сгенерить сервис, получил вот такую вещь: Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/home/***/.m2/repository/com/sun/xml/bind/jaxb-impl/2.1.7/jaxb-impl-2.1.7.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/) То есть я даже до вашей ошибки не дошёл... стало быть у вас наврятли проблемы с библиотеками... проблемы именно с парсингом... Пробовали сгенерить клиента для другого веб-сервиса? Возможно это вам поможет: http://www.jroller.com/gmazza/entry/creating_a_soap_client_with http://www.jroller.com/gmazza/date/20090110 http://www.jroller.com/gmazza/date/20090119 |