powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / клиент для получения валюты с ЦБ
25 сообщений из 41, страница 1 из 2
клиент для получения валюты с ЦБ
    #38557530
ecs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ecs
Гость
Добрый день.

Создал проект (package1)
Подключил внешний веб сервис ( http://www.cbr.ru/scripts/root.asp) используя wsdl. В проект добавился пакет ru.cbr.web с исходниками (package2). Все правильно.

Далее делаю новый класс в package1 и хочу обратиться к веб-сервису, создаю объект:

Код: java
1.
2.
3.
	 public static void main(String[] args) {
		 	DailyInfo service = new DailyInfo();
	 }



и тут получается следующее:

1. выскакивает исключение, что не найден файл wsdl в DailyInfo, причем он там лежит. Проверил classpath действительно ищет не там. Вывел classpath и положил файл в нужное место ---> см пункт 2
Код: java
1.
Exception in thread "main" javax.xml.ws.WebServiceException: Cannot find 'WEB-INF/wsdl/temp.wsdl' wsdl.




2. если все таки указываю на правильный путь к файлу и запускаю то выскакивает другое исключение
Код: java
1.
Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.ffdc.Manager




Отсюда 2 вопроса:

1. я работаю в IDE RAD и classpath настраивается в нем (в проекте); Если его изменить, он почему то затирает папки на которые раньше был указан. Почему так?

2. Что за исключение NoClassDefFoundError куда хоть копать?

3. И файл подтянутый с веб-сервиса DailyInfo.java почему то имеет ошибку в этом месте

Код: java
1.
2.
3.
    public DailyInfo(WebServiceFeature... features) {
        super(__getWsdlLocation(), DAILYINFO_QNAME, features);
    }



Почему?


Файл DailyInfo.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
//
// Generated By:JAX-WS RI IBM 2.2.1-11/30/2010 12:42 PM(foreman)- (JAXB RI IBM 2.2.3-11/28/2011 06:21 AM(foreman)-)
//


package ru.cbr.web;

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.WebServiceFeature;

@WebServiceClient(name = "DailyInfo", targetNamespace = "http://web.cbr.ru/", wsdlLocation = "WEB-INF/wsdl/temp.wsdl")
public class DailyInfo
    extends Service
{

    private final static URL DAILYINFO_WSDL_LOCATION;
    private final static WebServiceException DAILYINFO_EXCEPTION;
    private final static QName DAILYINFO_QNAME = new QName("http://web.cbr.ru/", "DailyInfo");

    static {
            DAILYINFO_WSDL_LOCATION = ru.cbr.web.DailyInfo.class.getResource("/temp.wsdl");
        WebServiceException e = null;
        if (DAILYINFO_WSDL_LOCATION == null) {
            e = new WebServiceException("Cannot find 'WEB-INF/wsdl/temp.wsdl' wsdl. Place the resource correctly in the classpath.");
        }
        DAILYINFO_EXCEPTION = e;
    }

    public DailyInfo() {
        super(__getWsdlLocation(), DAILYINFO_QNAME);
    }

    public DailyInfo(WebServiceFeature... features) {
        super(__getWsdlLocation(), DAILYINFO_QNAME, features);
    }

    public DailyInfo(URL wsdlLocation) {
        super(wsdlLocation, DAILYINFO_QNAME);
    }

    public DailyInfo(URL wsdlLocation, WebServiceFeature... features) {
        super(wsdlLocation, DAILYINFO_QNAME, features);
    }

    public DailyInfo(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);
    }

    public DailyInfo(URL wsdlLocation, QName serviceName, WebServiceFeature... features) {
        super(wsdlLocation, serviceName, features);
    }

    /**
     * 
     * @return
     *     returns DailyInfoSoap
     */
    @WebEndpoint(name = "DailyInfoSoap")
    public DailyInfoSoap getDailyInfoSoap() {
        return super.getPort(new QName("http://web.cbr.ru/", "DailyInfoSoap"), DailyInfoSoap.class);
    }

    /**
     * 
     * @param features
     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
     * @return
     *     returns DailyInfoSoap
     */
    @WebEndpoint(name = "DailyInfoSoap")
    public DailyInfoSoap getDailyInfoSoap(WebServiceFeature... features) {
        return super.getPort(new QName("http://web.cbr.ru/", "DailyInfoSoap"), DailyInfoSoap.class, features);
    }

    /**
     * 
     * @return
     *     returns DailyInfoSoap
     */
    @WebEndpoint(name = "DailyInfoSoap12")
    public DailyInfoSoap getDailyInfoSoap12() {
        return super.getPort(new QName("http://web.cbr.ru/", "DailyInfoSoap12"), DailyInfoSoap.class);
    }

    /**
     * 
     * @param features
     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
     * @return
     *     returns DailyInfoSoap
     */
    @WebEndpoint(name = "DailyInfoSoap12")
    public DailyInfoSoap getDailyInfoSoap12(WebServiceFeature... features) {
        return super.getPort(new QName("http://web.cbr.ru/", "DailyInfoSoap12"), DailyInfoSoap.class, features);
    }

    private static URL __getWsdlLocation() {
        if (DAILYINFO_EXCEPTION!= null) {
            throw DAILYINFO_EXCEPTION;
        }
        return DAILYINFO_WSDL_LOCATION;
    }

}
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38557543
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ecs1. выскакивает исключение, что не найден файл wsdl в DailyInfo, причем он там лежит. Проверил classpath действительно ищет не там. Вывел classpath и положил файл в нужное место ---> см пункт 2
Код: java
1.
Exception in thread "main" javax.xml.ws.WebServiceException: Cannot find 'WEB-INF/wsdl/temp.wsdl' wsdl.



Это странно. Обычно wsdl клиенту не нужна для исполнения вроде. Можно stacktrace увидеть?

ecs2. если все таки указываю на правильный путь к файлу и запускаю то выскакивает другое исключение
Код: java
1.
Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.ffdc.Manager



Первая же ссылка из гугла всё объясняет. Вы сгенерили классы используя IBM реализацию. Но для рантайма её не подключили.
http://www-01.ibm.com/support/docview.wss?uid=swg21358301

ecs1. я работаю в IDE RAD и classpath настраивается в нем (в проекте); Если его изменить, он почему то затирает папки на которые раньше был указан. Почему так?

Сложно ответить человеку с ружьём на вопрос почему у него в ноге дырка. IDE RAD это такое требование проекта?

ecs2. Что за исключение NoClassDefFoundError куда хоть копать?

Класс не найден в classpath .

ecs3. И файл подтянутый с веб-сервиса DailyInfo.java почему то имеет ошибку в этом месте

Что значит подтянутый? И какая именно ошибка тоже большой секрет?

ecsФайл DailyInfo.java

Ааа.. То есть нам предлагается самостоятельно скомпилировать чтобы посмотреть на ошибку? Или что?
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558202
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка тут:

Код: java
1.
2.
3.
public DailyInfo(WebServiceFeature... features) {
        super(__getWsdlLocation(), DAILYINFO_QNAME, features);
    }



Не нравится конструктор, почему так? Вот тут даже описание проблемы
http://stackoverflow.com/questions/6585913/wsimport-generates-faulty-code
https://netbeans.org/bugzilla/show_bug.cgi?id=195792

ну очень понимаю почему, помогите пожалуйста:)
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558204
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разговор слепого с глухим. Написано же, несовместимость разных версий JAX-WS API.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558211
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczРазговор слепого с глухим. Написано же, несовместимость разных версий JAX-WS API.
:) это понятно, не понятно как сделать чтобы все было совместимо?
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558217
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотреть JAX-WS RI IBM 2.2.1 и разобраться какую версию JSE/JEE/JAX-WS API оно поддерживает. Перенастроить проект на нужную версию API.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558220
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sce,

Когда-то давно занимался аналогичной задачей, не знаю как сейчас обстоят дела, но несколько лет назад было...
Файл wsdl, кот. лежит на сайте ЦБ, сгенерён какой-то майкрософтовской тулзой для работы на майкрософтовском сервере по майкрософтовским понятиям. При генерации болванки web-servise consumer эклипсом по этому wsdl, оно потом не хотело соединятся с этим сервером. Пришлось внести коррективы в локальную версию wsdl, и скормить её эклипсу. После этого заработало. Сейчас уже не помню какие именно были ошибки и какие именно были внесены коррективы. Где-то в интернете были найдены описания особого видения Microsoft об web-сервисах и их отличия от общепринятых, там же, по-моему, были и рекоменации по правке майкрософтовского wsdl.

Не ручаюсь, что сейчас это актуально и как-то связано с вашей ошибкой. Года 2 или три уже прошло.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558221
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с основного:
Какие версии Java и WebSphere используются?
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558222
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickКогда-то давно занимался аналогичной задачей, не знаю как сейчас обстоят дела, но несколько лет назад было...
Файл wsdl, кот. лежит на сайте ЦБ, сгенерён какой-то майкрософтовской тулзой для работы на майкрософтовском сервере по майкрософтовским понятиям. При генерации болванки web-servise consumer эклипсом по этому wsdl, оно потом не хотело соединятся с этим сервером. Пришлось внести коррективы в локальную версию wsdl, и скормить её эклипсу. После этого заработало. Сейчас уже не помню какие именно были ошибки и какие именно были внесены коррективы. Где-то в интернете были найдены описания особого видения Microsoft об web-сервисах и их отличия от общепринятых, там же, по-моему, были и рекоменации по правке майкрософтовского wsdl.

Не ручаюсь, что сейчас это актуально и как-то связано с вашей ошибкой. Года 2 или три уже прошло.
У ТС соврешенно другая проблема. Классы сгенерились нормально. Но использовать их не выходит.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558226
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

У меня тоже классы генерились нормально, но не работали, после исправления wsdl классы стали генериться другие и стали работать с этим сервером.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558236
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickУ меня тоже классы генерились нормально, но не работали, после исправления wsdl классы стали генериться другие и стали работать с этим сервером.
Да, бывает. Может быть в именах конфликт был. Или что-то аналогичное. В любом случае тут до этого дело ещё не дошло. Автор с версиями разобраться не может, надеясь что всемогущая IDE RAD всё разрулит.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558248
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот только обратил внимание, тут вообще дохрена странностей. Первый раз вижу, чтобы WSDL для клиента ожидался в WEB-INF. Это для сервере так делается. Можно посмотреть тут примеры
https://jax-ws.java.net/2.2.6/docs/ch03.html
Для клиента, обычно, для WSDL location указывается полный URL к WSDL с cbr.ru. Либо вы при генерации что-то намудрили, что RAD сразу клиента и сервер сгенерировал. Либо я не знаю, что за косяк такой.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558269
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПосмотреть JAX-WS RI IBM 2.2.1 и разобраться какую версию JSE/JEE/JAX-WS API оно поддерживает. Перенастроить проект на нужную версию API.

Я так понял что Wsimport и компилятор используют разные версии JAX-WS (например, wsimport использует 2.1, а компилятор - 2.2)

Я так понял что нужно исправить либо библиотеки, используемые компилятором, либо используемые wsimport`ом (первый использует библиотеки, подключенные к проекту, а второй - библиотеки JDK их можно переопределить через endorsed-механизм.

Версия "wsimport -version":
JAX-WS RI 2.2.4-b01

А как понять какую версию использует компилятор?
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558275
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garricksce,

Когда-то давно занимался аналогичной задачей, не знаю как сейчас обстоят дела, но несколько лет назад было...
Файл wsdl, кот. лежит на сайте ЦБ, сгенерён какой-то майкрософтовской тулзой для работы на майкрософтовском сервере по майкрософтовским понятиям. При генерации болванки web-servise consumer эклипсом по этому wsdl, оно потом не хотело соединятся с этим сервером. Пришлось внести коррективы в локальную версию wsdl, и скормить её эклипсу. После этого заработало. Сейчас уже не помню какие именно были ошибки и какие именно были внесены коррективы. Где-то в интернете были найдены описания особого видения Microsoft об web-сервисах и их отличия от общепринятых, там же, по-моему, были и рекоменации по правке майкрософтовского wsdl.

Не ручаюсь, что сейчас это актуально и как-то связано с вашей ошибкой. Года 2 или три уже прошло.
Да этот баг есть до сихпор:) его исправил, с этим проблем вроде нет. спасибо
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558276
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sceА как понять какую версию использует компилятор?
Версия Java, блин, какая? Простой, казалось бы, вопрос.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558280
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sceДа этот баг есть до сихпор:) его исправил, с этим проблем вроде нет. спасибо
В чем было дело?
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558290
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczsceА как понять какую версию использует компилятор?
Версия Java, блин, какая? Простой, казалось бы, вопрос.
java -version
1.7.0_45
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558295
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczsceДа этот баг есть до сихпор:) его исправил, с этим проблем вроде нет. спасибо
В чем было дело?
надо было в wsdl файле удалить <s:element ref="s:schema" />.
тут подробнее http://anteastra.blogspot.ru/2012/12/java-web-sercice.html
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558302
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scejava -version
1.7.0_45
Это то что консоль выдаёт, а не то что в настройках проекта указано?
Вот тут можно убедится что в Java 7, как раз нужный конструктор есть
http://docs.oracle.com/javase/7/docs/api/javax/xml/ws/Service.html
А в Java 6 ещё нет
http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/Service.html
Вот в этом коде
Код: java
1.
2.
public class DailyInfo
    extends Service


Кликните с Ctrl на Service, чтобы его открыть. И там посмотрите откуда этот класс загружен.
Либо таки откуда-то из JDK 6, либо из какого-нибудь jee-api.jar не самой свежей версии.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558310
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sceнадо было в wsdl файле удалить <s:element ref="s:schema" />.
тут подробнее http://anteastra.blogspot.ru/2012/12/java-web-sercice.html
Эта ошибка в wsimport видна. Garrick завявляет что wsimport проходит без ошибок.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558312
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВот только обратил внимание, тут вообще дохрена странностей. Первый раз вижу, чтобы WSDL для клиента ожидался в WEB-INF. Это для сервере так делается. Можно посмотреть тут примеры
https://jax-ws.java.net/2.2.6/docs/ch03.html
Для клиента, обычно, для WSDL location указывается полный URL к WSDL с cbr.ru. Либо вы при генерации что-то намудрили, что RAD сразу клиента и сервер сгенерировал. Либо я не знаю, что за косяк такой.
Я через Web-service Explorer импортитовал к себе в проект wsdl файл, далее исправл microsoftовский баг, и потом сгенерировал клиента. В проект добавился пакет с исходниками. При первом обращении к файлу DailyInfo вываливается ошибка что не найден wsdl /web-inf/wsdl. А дальше появляется проблема с конструктором..
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558322
sce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczscejava -version
1.7.0_45
Это то что консоль выдаёт, а не то что в настройках проекта указано?

Да это то что выдает конструктор, в проекте указано 1.6


BlazkowiczВот тут можно убедится что в Java 7, как раз нужный конструктор есть
http://docs.oracle.com/javase/7/docs/api/javax/xml/ws/Service.html
А в Java 6 ещё нет
http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/Service.html
Вот в этом коде
Код: java
1.
2.
public class DailyInfo
    extends Service


Кликните с Ctrl на Service, чтобы его открыть. И там посмотрите откуда этот класс загружен.
Либо таки откуда-то из JDK 6, либо из какого-нибудь jee-api.jar не самой свежей версии.

Вот код этого класса:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
/*===========================================================================
 * Licensed Materials - Property of IBM
 * "Restricted Materials of IBM"
 * 
 * IBM SDK, Java(tm) Technology Edition, v6
 * (C) Copyright IBM Corp. 2011, 2011. All Rights Reserved
 *
 * US Government Users Restricted Rights - Use, duplication or disclosure
 * restricted by GSA ADP Schedule Contract with IBM Corp.
 *===========================================================================
 */
/*
 * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package javax.xml.ws;

import javax.xml.namespace.QName;
import java.util.Iterator;
import javax.xml.ws.handler.HandlerResolver;
import javax.xml.bind.JAXBContext;
import javax.xml.ws.spi.ServiceDelegate;
import javax.xml.ws.spi.Provider;

/**
 * <code>Service</code> objects provide the client view of a Web service.
 * <p><code>Service</code> acts as a factory of the following:
 * <ul>
 * <li>Proxies for a target service endpoint.
 * <li>Instances of {@link javax.xml.ws.Dispatch} for
 *     dynamic message-oriented invocation of a remote
 *     operation.
 * </li>
 *
 * <p>The ports available on a service can be enumerated using the
 * <code>getPorts</code> method. Alternatively, you can pass a
 * service endpoint interface to the unary <code>getPort</code> method
 * and let the runtime select a compatible port.
 *
 * <p>Handler chains for all the objects created by a <code>Service</code>
 * can be set by means of a <code>HandlerResolver</code>.
 *
 * <p>An <code>Executor</code> may be set on the service in order
 * to gain better control over the threads used to dispatch asynchronous
 * callbacks. For instance, thread pooling with certain parameters
 * can be enabled by creating a <code>ThreadPoolExecutor</code> and
 * registering it with the service.
 *
 * @since JAX-WS 2.0
 *
 * @see javax.xml.ws.spi.Provider
 * @see javax.xml.ws.handler.HandlerResolver
 * @see java.util.concurrent.Executor
 **/
public class Service {
    
    private ServiceDelegate delegate;
    /**
     * The orientation of a dynamic client or service. <code>MESSAGE</code> provides
     * access to entire protocol message, <code>PAYLOAD</code> to protocol message
     * payload only.
     **/
    public enum Mode { MESSAGE, PAYLOAD };
    
    protected Service(java.net.URL wsdlDocumentLocation, QName serviceName) {
        delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation,
                serviceName,
                this.getClass());
    }
    
    
    /** 
     * The <code>getPort</code> method returns a proxy. A service client
     * uses this proxy to invoke operations on the target
     * service endpoint. The <code>serviceEndpointInterface</code>
     * specifies the service endpoint interface that is supported by
     * the created dynamic proxy instance.
     *
     * @param portName  Qualified name of the service endpoint in
     *                  the WSDL service description.
     * @param serviceEndpointInterface Service endpoint interface
     *                  supported by the dynamic proxy instance.
     * @return Object Proxy instance that
     *                supports the specified service endpoint
     *                interface.
     * @throws WebServiceException This exception is thrown in the
     *                  following cases:
     *                  <UL>
     *                  <LI>If there is an error in creation of
     *                      the proxy.
     *                  <LI>If there is any missing WSDL metadata
     *                      as required by this method.
     *                  <LI>If an illegal
     *                      <code>serviceEndpointInterface</code>
     *                      or <code>portName</code> is specified.
     *                  </UL>
     * @see java.lang.reflect.Proxy
     * @see java.lang.reflect.InvocationHandler
     **/
    public <T> T getPort(QName portName,
            Class<T> serviceEndpointInterface) {
        return delegate.getPort(portName, serviceEndpointInterface);
    }
    
    /** 
     * The <code>getPort</code> method returns a proxy. A service client
     * uses this proxy to invoke operations on the target
     * service endpoint. The <code>serviceEndpointInterface</code>
     * specifies the service endpoint interface that is supported by
     * the created dynamic proxy instance.
     *
     * @param portName  Qualified name of the service endpoint in
     *                  the WSDL service description.
     * @param serviceEndpointInterface Service endpoint interface
     *                  supported by the dynamic proxy instance.
     * @param features  A list of WebServiceFeatures to configure on the 
     *                proxy.  Supported features not in the <code>features
     *                </code> parameter will have their default values.
     * @return Object Proxy instance that
     *                supports the specified service endpoint
     *                interface.
     * @throws WebServiceException This exception is thrown in the
     *                  following cases:
     *                  <UL>
     *                  <LI>If there is an error in creation of
     *                      the proxy.
     *                  <LI>If there is any missing WSDL metadata
     *                      as required by this method.
     *                  <LI>If an illegal
     *                      <code>serviceEndpointInterface</code>
     *                      or <code>portName</code> is specified.
     *                  <LI>If a feature is enabled that is not compatible
     *                      with this port or is unsupported.
     *                  </UL>
     * @see java.lang.reflect.Proxy
     * @see java.lang.reflect.InvocationHandler
     * @see WebServiceFeature
     * 
     * @since JAX-WS 2.1
     **/
    public <T> T getPort(QName portName,
            Class<T> serviceEndpointInterface, WebServiceFeature... features) {
        return delegate.getPort(portName, serviceEndpointInterface, features);
    }       
    
    
    /** 
     * The <code>getPort</code> method returns a proxy. The parameter
     * <code>serviceEndpointInterface</code> specifies the service
     * endpoint interface that is supported by the returned proxy.
     * In the implementation of this method, the JAX-WS
     * runtime system takes the responsibility of selecting a protocol
     * binding (and a port) and configuring the proxy accordingly.
     * The returned proxy should not be reconfigured by the client.
     *
     * @param serviceEndpointInterface Service endpoint interface.
     * @return Object instance that supports the
     *                  specified service endpoint interface.
     * @throws WebServiceException
     *                  <UL>
     *                  <LI>If there is an error during creation
     *                      of the proxy.
     *                  <LI>If there is any missing WSDL metadata
     *                      as required by this method.
     *                  <LI>If an illegal.
     *                      <code>serviceEndpointInterface</code>
     *                      is specified.
     *                  </UL>
     **/
    public <T> T getPort(Class<T> serviceEndpointInterface) {
        return delegate.getPort(serviceEndpointInterface);
    }
       
    
    /**
     * The <code>getPort</code> method returns a proxy. The parameter
     * <code>serviceEndpointInterface</code> specifies the service
     * endpoint interface that is supported by the returned proxy.
     * In the implementation of this method, the JAX-WS
     * runtime system takes the responsibility of selecting a protocol
     * binding (and a port) and configuring the proxy accordingly.
     * The returned proxy should not be reconfigured by the client.
     *
     * @param serviceEndpointInterface Service endpoint interface.
     * @param features  A list of WebServiceFeatures to configure on the 
     *                proxy.  Supported features not in the <code>features
     *                </code> parameter will have their default values.
     * @return Object instance that supports the
     *                  specified service endpoint interface.
     * @throws WebServiceException
     *                  <UL>
     *                  <LI>If there is an error during creation
     *                      of the proxy.
     *                  <LI>If there is any missing WSDL metadata
     *                      as required by this method.
     *                  <LI>If an illegal
     *                      <code>serviceEndpointInterface</code>
     *                      is specified.
     *                  <LI>If a feature is enabled that is not compatible
     *                      with this port or is unsupported.
     *                  </UL>
     *
     * @see WebServiceFeature
     *
     * @since JAX-WS 2.1
     **/
    public <T> T getPort(Class<T> serviceEndpointInterface, 
            WebServiceFeature... features) {
        return delegate.getPort(serviceEndpointInterface, features);
    }

    
    /** 
     * The <code>getPort</code> method returns a proxy.
     * The parameter <code>endpointReference</code> specifies the
     * endpoint that will be invoked by the returned proxy.  If there
     * are any reference parameters in the 
     * <code>endpointReference</code>, then those reference
     * parameters MUST appear as SOAP headers, indicating them to be
     * reference parameters, on all messages sent to the endpoint.
     * The <code>endpointReference's</code> address MUST be used
     * for invocations on the endpoint.
     * The parameter <code>serviceEndpointInterface</code> specifies
     * the service endpoint interface that is supported by the 
     * returned proxy.
     * In the implementation of this method, the JAX-WS
     * runtime system takes the responsibility of selecting a protocol
     * binding (and a port) and configuring the proxy accordingly from
     * the WSDL associated with this <code>Service</code> instance or
     * from the metadata from the <code>endpointReference</code>.
     * If this <code>Service</code> instance has a WSDL and 
     * the <code>endpointReference</code> metadata 
     * also has a WSDL, then the WSDL from this instance MUST be used.
     * If this <code>Service</code> instance does not have a WSDL and
     * the <code>endpointReference</code> does have a WSDL, then the 
     * WSDL from the <code>endpointReference</code> MAY be used.
     * The returned proxy should not be reconfigured by the client.
     * If this <code>Service</code> instance has a known proxy 
     * port that matches the information contained in 
     * the WSDL,
     * then that proxy is returned, otherwise a WebServiceException
     * is thrown.
     * <p>
     * Calling this method has the same behavior as the following
     * <pre>
     * <code>port = service.getPort(portName, serviceEndpointInterface);</code>
     * </pre>
     * where the <code>portName</code> is retrieved from the 
     * metadata of the <code>endpointReference</code> or from the 
     * <code>serviceEndpointInterface</code> and the WSDL
     * associated with this <code>Service</code> instance.
     *
     * @param endpointReference  The <code>EndpointReference</code>
     * for the target service endpoint that will be invoked by the
     * returned proxy.
     * @param serviceEndpointInterface Service endpoint interface.
     * @param features  A list of <code>WebServiceFeatures</code> to configure on the 
     *                proxy.  Supported features not in the <code>features
     *                </code> parameter will have their default values.
     * @return Object Proxy instance that supports the
     *                  specified service endpoint interface.
     * @throws WebServiceException
     *                  <UL>
     *                  <LI>If there is an error during creation
     *                      of the proxy.
     *                  <LI>If there is any missing WSDL metadata
     *                      as required by this method.
     *                  <LI>If the <code>endpointReference</code> metadata does
     *                      not match the <code>serviceName</code> of this
     *                      <code>Service</code> instance.
     *                  <LI>If a <code>portName</code> cannot be extracted
     *                      from the WSDL or <code>endpointReference</code> metadata.
     *                  <LI>If an invalid
     *                      <code>endpointReference</code>
     *                      is specified.
     *                  <LI>If an invalid
     *                      <code>serviceEndpointInterface</code>
     *                      is specified.
     *                  <LI>If a feature is enabled that is not compatible
     *                      with this port or is unsupported.
     *                  </UL>
     *
     * @since JAX-WS 2.1
     **/
    public <T> T getPort(EndpointReference endpointReference,
           Class<T> serviceEndpointInterface, WebServiceFeature... features) {
        return delegate.getPort(endpointReference, serviceEndpointInterface, features);
    }      
    
    /** 
     * Creates a new port for the service. Ports created in this way contain
     * no WSDL port type information and can only be used for creating
     * <code>Dispatch</code>instances.
     *
     * @param portName  Qualified name for the target service endpoint.
     * @param bindingId A String identifier of a binding.
     * @param endpointAddress Address of the target service endpoint as a URI.
     * @throws WebServiceException If any error in the creation of
     * the port.
     *
     * @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
     * @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
     * @see javax.xml.ws.http.HTTPBinding#HTTP_BINDING
     **/
    public void addPort(QName portName, String bindingId, String endpointAddress) {
        delegate.addPort(portName, bindingId, endpointAddress);
    }
    
        
    /** 
     * Creates a <code>Dispatch</code> instance for use with objects of
     * the user's choosing.
     *
     * @param portName  Qualified name for the target service endpoint
     * @param type The class of object used for messages or message
     * payloads. Implementations are required to support
     * <code>javax.xml.transform.Source</code>, <code>javax.xml.soap.SOAPMessage</code>
     * and <code>javax.activation.DataSource</code>, depending on
     * the binding in use.
     * @param mode Controls whether the created dispatch instance is message
     * or payload oriented, i.e. whether the user will work with complete
     * protocol messages or message payloads. E.g. when using the SOAP
     * protocol, this parameter controls whether the user will work with
     * SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
     * when type is SOAPMessage.
     *
     * @return Dispatch instance.
     * @throws WebServiceException If any error in the creation of
     *                  the <code>Dispatch</code> object.
     *
     * @see javax.xml.transform.Source
     * @see javax.xml.soap.SOAPMessage
     **/
    public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Mode mode) {
        return delegate.createDispatch(portName, type, mode);
    }
    
    
    /** 
     * Creates a <code>Dispatch</code> instance for use with objects of
     * the user's choosing.
     *
     * @param portName  Qualified name for the target service endpoint
     * @param type The class of object used for messages or message
     * payloads. Implementations are required to support
     * <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.
     * @param mode Controls whether the created dispatch instance is message
     * or payload oriented, i.e. whether the user will work with complete
     * protocol messages or message payloads. E.g. when using the SOAP
     * protocol, this parameter controls whether the user will work with
     * SOAP messages or the contents of a SOAP body. Mode MUST be <code>MESSAGE</code>
     * when type is <code>SOAPMessage</code>.
     * @param features  A list of <code>WebServiceFeatures</code> to configure on the 
     *                proxy.  Supported features not in the <code>features
     *                </code> parameter will have their default values.
     *
     * @return Dispatch instance.
     * @throws WebServiceException If any error in the creation of
     *                  the <code>Dispatch</code> object or if a 
     *                  feature is enabled that is not compatible with 
     *                  this port or is unsupported.
     *
     * @see javax.xml.transform.Source
     * @see javax.xml.soap.SOAPMessage
     * @see WebServiceFeature
     *
     * @since JAX-WS 2.1
     **/
    public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, 
            Service.Mode mode, WebServiceFeature... features) {
        return delegate.createDispatch(portName, type, mode, features);
    }     
    
    
    /** 
     * Creates a <code>Dispatch</code> instance for use with objects of
     * the user's choosing. If there
     * are any reference parameters in the 
     * <code>endpointReference</code>, then those reference
     * parameters MUST appear as SOAP headers, indicating them to be
     * reference parameters, on all messages sent to the endpoint.
     * The <code>endpointReference's</code> address MUST be used
     * for invocations on the endpoint.
     * In the implementation of this method, the JAX-WS
     * runtime system takes the responsibility of selecting a protocol
     * binding (and a port) and configuring the dispatch accordingly from
     * the WSDL associated with this <code>Service</code> instance or
     * from the metadata from the <code>endpointReference</code>.
     * If this <code>Service</code> instance has a WSDL and 
     * the <code>endpointReference</code>
     * also has a WSDL in its metadata, then the WSDL from this instance MUST be used.
     * If this <code>Service</code> instance does not have a WSDL and
     * the <code>endpointReference</code> does have a WSDL, then the 
     * WSDL from the <code>endpointReference</code> MAY be used.     
     * An implementation MUST be able to retrieve the <code>portName</code> from the
     * <code>endpointReference</code> metadata.
     * <p>
     * This method behaves the same as calling
     * <pre>
     * <code>dispatch = service.createDispatch(portName, type, mode, features);</code>
     * </pre>
     * where the <code>portName</code> is retrieved from the 
     * WSDL or <code>EndpointReference</code> metadata.
     *
     * @param endpointReference  The <code>EndpointReference</code>
     * for the target service endpoint that will be invoked by the
     * returned <code>Dispatch</code> object.
     * @param type The class of object used to messages or message
     * payloads. Implementations are required to support
     * <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.
     * @param mode Controls whether the created dispatch instance is message
     * or payload oriented, i.e. whether the user will work with complete
     * protocol messages or message payloads. E.g. when using the SOAP
     * protocol, this parameter controls whether the user will work with
     * SOAP messages or the contents of a SOAP body. Mode MUST be <code>MESSAGE</code>
     * when type is <code>SOAPMessage</code>.
     * @param features  An array of <code>WebServiceFeatures</code> to configure on the 
     *                proxy.  Supported features not in the <code>features
     *                </code> parameter will have their default values.
     *
     * @return Dispatch instance
     * @throws WebServiceException 
     *                  <UL>
     *                    <LI>If there is any missing WSDL metadata
     *                      as required by this method.
     *                    <li>If the <code>endpointReference</code> metadata does
     *                      not match the <code>serviceName</code> or <code>portName</code>
     *                      of a WSDL associated
     *                      with this <code>Service</code> instance.
     *                    <li>If the <code>portName</code> cannot be determined
     *                    from the <code>EndpointReference</code> metadata.
     *                    <li>If any error in the creation of
     *                     the <code>Dispatch</code> object.
     *                    <li>If a feature is enabled that is not 
     *                    compatible with this port or is unsupported.
     *                  </UL>
     *
     * @see javax.xml.transform.Source
     * @see javax.xml.soap.SOAPMessage
     * @see WebServiceFeature
     *
     * @since JAX-WS 2.1
     **/
    public <T> Dispatch<T> createDispatch(EndpointReference endpointReference,
            Class<T> type, Service.Mode mode, 
            WebServiceFeature... features) {
        return delegate.createDispatch(endpointReference, type, mode, features);
    }     
    
    /** 
     * Creates a <code>Dispatch</code> instance for use with JAXB
     * generated objects.
     *
     * @param portName  Qualified name for the target service endpoint
     * @param context The JAXB context used to marshall and unmarshall
     * messages or message payloads.
     * @param mode Controls whether the created dispatch instance is message
     * or payload oriented, i.e. whether the user will work with complete
     * protocol messages or message payloads. E.g. when using the SOAP
     * protocol, this parameter controls whether the user will work with
     * SOAP messages or the contents of a SOAP body.
     *
     * @return Dispatch instance.
     * @throws WebServiceException If any error in the creation of
     *                  the <code>Dispatch</code> object.
     *
     * @see javax.xml.bind.JAXBContext
     **/
    public Dispatch<Object> createDispatch(QName portName, JAXBContext context,
            Mode mode) {
        return delegate.createDispatch(portName, context,  mode);
    }
        
    
    /** 
     * Creates a <code>Dispatch</code> instance for use with JAXB
     * generated objects.
     *
     * @param portName  Qualified name for the target service endpoint
     * @param context The JAXB context used to marshall and unmarshall
     * messages or message payloads.
     * @param mode Controls whether the created dispatch instance is message
     * or payload oriented, i.e. whether the user will work with complete
     * protocol messages or message payloads. E.g. when using the SOAP
     * protocol, this parameter controls whether the user will work with
     * SOAP messages or the contents of a SOAP body.
     * @param features  A list of <code>WebServiceFeatures</code> to configure on the 
     *                proxy.  Supported features not in the <code>features
     *                </code> parameter will have their default values.
     *
     * @return Dispatch instance.
     * @throws WebServiceException If any error in the creation of
     *                  the <code>Dispatch</code> object or if a 
     *                  feature is enabled that is not compatible with 
     *                  this port or is unsupported.
     *
     * @see javax.xml.bind.JAXBContext
     * @see WebServiceFeature
     *
     * @since JAX-WS 2.1
     **/
    public Dispatch<Object> createDispatch(QName portName,
            JAXBContext context, Service.Mode mode, WebServiceFeature... features) {
        return delegate.createDispatch(portName, context, mode, features);
    }      
    
    
    /** 
     * Creates a <code>Dispatch</code> instance for use with JAXB
     * generated objects. If there
     * are any reference parameters in the 
     * <code>endpointReference</code>, then those reference
     * parameters MUST appear as SOAP headers, indicating them to be
     * reference parameters, on all messages sent to the endpoint.
     * The <code>endpointReference's</code> address MUST be used
     * for invocations on the endpoint.
     * In the implementation of this method, the JAX-WS
     * runtime system takes the responsibility of selecting a protocol
     * binding (and a port) and configuring the dispatch accordingly from
     * the WSDL associated with this <code>Service</code> instance or
     * from the metadata from the <code>endpointReference</code>.
     * If this <code>Service</code> instance has a WSDL and 
     * the <code>endpointReference</code>
     * also has a WSDL in its metadata, then the WSDL from this instance
     * MUST be used.
     * If this <code>Service</code> instance does not have a WSDL and
     * the <code>endpointReference</code> does have a WSDL, then the 
     * WSDL from the <code>endpointReference</code> MAY be used.      
     * An implementation MUST be able to retrieve the <code>portName</code> from the
     * <code>endpointReference</code> metadata. 
     * <p>
     * This method behavies the same as calling
     * <pre>
     * <code>dispatch = service.createDispatch(portName, context, mode, features);</code>
     * </pre>
     * where the <code>portName</code> is retrieved from the 
     * WSDL or <code>endpointReference</code> metadata.
     *
     * @param endpointReference  The <code>EndpointReference</code>
     * for the target service endpoint that will be invoked by the
     * returned <code>Dispatch</code> object.
     * @param context The JAXB context used to marshall and unmarshall
     * messages or message payloads.
     * @param mode Controls whether the created dispatch instance is message
     * or payload oriented, i.e. whether the user will work with complete
     * protocol messages or message payloads. E.g. when using the SOAP
     * protocol, this parameter controls whether the user will work with
     * SOAP messages or the contents of a SOAP body.
     * @param features  An array of <code>WebServiceFeatures</code> to configure on the 
     *                proxy.  Supported features not in the <code>features
     *                </code> parameter will have their default values.
     *
     * @return Dispatch instance
     * @throws WebServiceException 
     *                  <UL>
     *                    <li>If there is any missing WSDL metadata
     *                      as required by this method.
     *                    <li>If the <code>endpointReference</code> metadata does
     *                    not match the <code>serviceName</code> or <code>portName</code>
     *                    of a WSDL associated
     *                    with this <code>Service</code> instance.
     *                    <li>If the <code>portName</code> cannot be determined
     *                    from the <code>EndpointReference</code> metadata.
     *                    <li>If any error in the creation of
     *                    the <code>Dispatch</code> object.
     *                    <li>if a feature is enabled that is not 
     *                    compatible with this port or is unsupported.
     *                  </UL>
     *
     * @see javax.xml.bind.JAXBContext
     * @see WebServiceFeature
     *
     * @since JAX-WS 2.1
    **/
    public Dispatch<Object> createDispatch(EndpointReference endpointReference,
            JAXBContext context, Service.Mode mode,
            WebServiceFeature... features) {
        return delegate.createDispatch(endpointReference, context, mode, features);
    }    
    
    /** 
     * Gets the name of this service.
     * @return Qualified name of this service
     **/
    public QName getServiceName() {
        return delegate.getServiceName();
    }
    
    /** 
     * Returns an <code>Iterator</code> for the list of
     * <code>QName</code>s of service endpoints grouped by this
     * service
     *
     * @return Returns <code>java.util.Iterator</code> with elements
     *         of type <code>javax.xml.namespace.QName</code>.
     * @throws WebServiceException If this Service class does not
     *         have access to the required WSDL metadata.
     **/
    public Iterator<javax.xml.namespace.QName> getPorts() {
        return delegate.getPorts();
    }
    
    /** 
     * Gets the location of the WSDL document for this Service.
     *
     * @return URL for the location of the WSDL document for
     *         this service.
     **/
    public java.net.URL getWSDLDocumentLocation() {
        return delegate.getWSDLDocumentLocation();
    }
    
    /**
     * Returns the configured handler resolver.
     *
     * @return HandlerResolver The <code>HandlerResolver</code> being
     *         used by this <code>Service</code> instance, or <code>null</code>
     *         if there isn't one.
     **/
    public HandlerResolver getHandlerResolver() {
        return delegate.getHandlerResolver();
    }
    
    /**
     * Sets the <code>HandlerResolver</code> for this <code>Service</code>
     * instance.
     * <p>
     * The handler resolver, if present, will be called once for each
     * proxy or dispatch instance that is created, and the handler chain
     * returned by the resolver will be set on the instance.
     *
     * @param handlerResolver The <code>HandlerResolver</code> to use
     *        for all subsequently created proxy/dispatch objects.
     *
     * @see javax.xml.ws.handler.HandlerResolver
     **/
    public void setHandlerResolver(HandlerResolver handlerResolver) {
        delegate.setHandlerResolver(handlerResolver);
    }
    
    /**
     * Returns the executor for this <code>Service</code>instance.
     *
     * The executor is used for all asynchronous invocations that
     * require callbacks.
     *
     * @return The <code>java.util.concurrent.Executor</code> to be
     *         used to invoke a callback.
     *
     * @see java.util.concurrent.Executor
     **/
    public java.util.concurrent.Executor getExecutor() {
        return delegate.getExecutor();
    }
    
    /**
     * Sets the executor for this <code>Service</code> instance.
     *
     * The executor is used for all asynchronous invocations that
     * require callbacks.
     *
     * @param executor The <code>java.util.concurrent.Executor</code>
     *        to be used to invoke a callback.
     *
     * @throws SecurityException If the instance does not support
     *         setting an executor for security reasons (e.g. the
     *         necessary permissions are missing).
     *
     * @see java.util.concurrent.Executor
     **/
    public void setExecutor(java.util.concurrent.Executor executor) {
        delegate.setExecutor(executor);
    }
    
    /**
     * Creates a <code>Service</code> instance.
     *
     * The specified WSDL document location and service qualified name MUST
     * uniquely identify a <code>wsdl:service</code> element.
     *
     * @param wsdlDocumentLocation <code>URL</code> for the WSDL document location
     *                             for the service
     * @param serviceName <code>QName</code> for the service
     * @throws WebServiceException If any error in creation of the
     *                    specified service.
     **/
    public static Service create(
            java.net.URL wsdlDocumentLocation,
            QName serviceName) {
        return new Service(wsdlDocumentLocation, serviceName);
    }
    
    /**
     * Creates a <code>Service</code> instance.
     *
     * @param serviceName <code>QName</code> for the service
     * @throws WebServiceException If any error in creation of the
     *                    specified service
     */
    public static Service create(QName serviceName) {
        return new Service(null, serviceName);
    }
}
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558338
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sceЯ через Web-service Explorer импортитовал к себе в проект wsdl файл

Вероятно, IDE решила что вы таки пишете сервер при этом. Иначе для чего импортировать WSDL.

sceПри первом обращении к файлу DailyInfo вываливается ошибка что не найден wsdl /web-inf/wsdl.
Это же всё видно в DailyInfo. Поменяйте там везде путь к WSDL на URL к WSDL сайта cbr.ru.

sceА дальше появляется проблема с конструктором..
Сколько раз можно повторять, что код сгенерился для Java 7, а у вас в проекте Java 6.
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558345
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sceBlazkowiczЭто то что консоль выдаёт, а не то что в настройках проекта указано?

Да это то что выдает конструктор, в проекте указано 1.6

Конструктор? Так вы даже не знаете какая вам версия Java нужна?

sceВот код этого класса:
Вы знаете, с вами очень трудно общаться. Я спросил "откуда этот класс загружен", а вы мне его исходник. Причем полностью.
Ладно. Мы уже определились, что "IBM SDK, Java(tm) Technology Edition, v6". Осталось разобраться откуда wsimport у вас? Из websphere?
...
Рейтинг: 0 / 0
клиент для получения валюты с ЦБ
    #38558352
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ещё по теме

https://jax-ws.java.net/2.2/docs/ReleaseNotes.html#Running_on_top_of_JDK_6
6. Running on top of JDK 6

JDK 6u4 includes JAX-WS 2.1 and JAXB 2.1 API and RI. JAX-WS RI 2.2 includes RI of JAX-WS/JAXB 2.2. In order to run JAX-WS RI 2.2 you would need to specify ONLY jaxws-api.jar, and jaxb-api.jar jars using the Java Endorsed Standards Override Mechanism
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / клиент для получения валюты с ЦБ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]