Прежде чем что-либо еще, я хочу, чтобы вы знали, что я уже могу подключиться к серверу веб-сервисов. Я задаю этот вопрос, потому что хочу получить более глубокие знания о том, как работает клиент, созданный wsimport. Основываясь на моих исследованиях, wsimport использует JAXWS. Обратите внимание, что у меня нет знаний от JAXWS.
Я создал своего клиента, используя wsimport. WSDL, который я использовал, является веб-службой Axis2 и автоматически генерируется Axis2. Ниже приведены классы wsimport:
В разделе com.datamodel.xsd
-
DataBeanRequest.java
-
DataBeanResponse.java
-
ObjectFactory.java
-
package-info.java
В com.service
-
MyWebService.java
-
MyWebServicePortType.java
-
MyMethod.java
-
MyMethodResponse.java
-
ObjectFactory.java
-
package-info.java
С приведенными выше классами я могу сказать, что com.datamodel.xsd
содержит beans, используемый сервером веб-сервисов (исключая ObjectFactory
и package-info
). Между тем MyMethod
и MyMethodResponse
также beans используются для установки параметра запроса и ответа метода/операции веб-службы.
Ниже приведены мои вопросы: (Вам не обязательно отвечать на все это, если вы не знаете ответов по некоторым из моих вопросов.:) И, пожалуйста, не стесняйтесь делиться любой информацией, которую, по вашему мнению, я могу найти полезно.)
Правильно ли я с
- Правильно ли я согласен с моими предположениями?
- Какова функция других классов?
- Я проверил
MyWebService
и содержит аннотацию, ссылающуюся на абсолютное местоположение WSDL, которое я использовал для создания клиента. Какова актуальность указанияwsdllocation
в клиенте? Как клиент использует эту информацию? - Я заметил, что фактический URL-адрес веб-службы не объявлен ни в одном из классов, сгенерированных. Как клиент знает, где ему нужно подключиться?
- Был ли аннотирован файл WSDL, чтобы клиент мог прочитать URL-адрес в файле WSDL при подключении? Если да, то означает ли это, что файл WSDL всегда читается, когда необходимо установить новое соединение?
-
Поскольку мне нужно скомпилировать мое приложение и установить его на другом сервере, он станет недействительным. Могу ли я установить его на относительный путь вместо абсолютного пути? Как? (Ответ: Да, он может быть установлен в относительный путь. Командаwsimport
имеет атрибутwsdllocation
, в котором может быть указано значениеwsdllocation
.) - Что делать, если мне нужно подключиться к HTTPS. Как установить сертификат сервера?
- Есть ли разница при создании моего клиента с помощью wsimport и при его создании с помощью Axis2 или Apache CXF.