Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / glassfish, не передается xsd:datуtime / 14 сообщений из 14, страница 1 из 1
15.10.2012, 07:40:17
    #37997921
SergeyAKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Нужно передать дату в вебсервис
Вот кусок wsdl

Код: xml
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.
      <xsd:element name="HBgetNewCust">
      	<xsd:complexType>
      		<xsd:sequence>

      			<xsd:element name="LastEventShtamp"
      				type="xsd:dateTime">
      			</xsd:element>
      			<xsd:element name="BranchId" type="xsd:long"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
      <xsd:element name="HBgetNewCustResponse">
      	<xsd:complexType>
      		<xsd:sequence maxOccurs="unbounded" minOccurs="1">

      			<xsd:element name="Customers" type="tns:NewCust"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>

----------------------------------------------------------------------------
  <wsdl:message name="HBgetNewCustRequest">
  	<wsdl:part name="parameters" element="tns:HBgetNewCust"></wsdl:part>
  </wsdl:message>
-----------------------------------------------------------------------------

  <wsdl:binding name="HomeBankWSSOAP" type="tns:HomeBankWS">
  	<soap:binding style="document"
  		transport="http://schemas.xmlsoap.org/soap/http" />
  	<wsdl:operation name="HBgetNewCust">
  		<soap:operation
  			soapAction="http://ru.ekb/HomeBankWS/HBgetNewCust" />
  		<wsdl:input>
  			<soap:body use="literal" />
  		</wsdl:input>
  		<wsdl:output>
  			<soap:body use="literal" />
  		</wsdl:output>
  	</wsdl:operation>
  </wsdl:binding>




Вот сам запрос

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header/>
    <S:Body>
        <ns2:HBgetNewCust xmlns:ns2="http://ru.ekb/HomeBankWS/">
            <BranchId>26</BranchId>
        </ns2:HBgetNewCust>
    </S:Body>
</S:Envelope>



Видно , что LastEventShtamp не передается.

При этом, если меняю xsd:datetime на xsd:string , то параметр передается

WS работает под GlassFish 3.1.2


Уже третий день пытаюсь разобраться , но так и не смог.

Может кто заметит , что не так?

Спасибо.
...
Рейтинг: 0 / 0
15.10.2012, 07:42:32
    #37997923
SergeyAKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Ошибся немного в заголовке, уж простите.

wsdl сгенерирован под Eclipse
...
Рейтинг: 0 / 0
15.10.2012, 10:10:51
    #37998047
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Ну, а как вы поле это устанавливаете?
...
Рейтинг: 0 / 0
15.10.2012, 12:08:07
    #37998268
SergeyAKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
BlazkowiczНу, а как вы поле это устанавливаете?

Это запрос который показал GlassFish

сам запрос был отправлен

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header/>
    <S:Body>
        <ns2:HBgetNewCust xmlns:ns2="http://.../HomeBankWS/">
	    <lastEventShtamp>2012-10-15T10:37:35.73100+0600</lastEventShtamp>
            <BranchId>26</BranchId>
        </ns2:HBgetNewCust>
    </S:Body>
</S:Envelope>
...
Рейтинг: 0 / 0
15.10.2012, 12:26:07
    #37998305
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
SergeyAKaЭто запрос который показал GlassFish

Что за игры в партизанов? Объясните внятно, кто куда передаёт и в чем конкретно проблема?
Кто передаёт XML?
Сервис на GlassFish, поняли уже, зачем было два раза повторять?
Что значит "сам запрос был отправлен, но параметр не передаётся"?
Как вы смотрите переданый и полученый запросы?

SergeyAKa
Код: xml
1.
	    <lastEventShtamp>2012-10-15T10:37:35.73100+0600</lastEventShtamp>



По-моему проблема в том что в Timezone пропущено двоеточие. Поэтому сервер не смог распарсить значение.
...
Рейтинг: 0 / 0
15.10.2012, 12:48:00
    #37998375
SergeyAKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Всяко пробовал. Не помогло.

Хотя, проблема в принципе решена. Проблема оказалась в клиенте.
...
Рейтинг: 0 / 0
15.10.2012, 16:36:35
    #37998932
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
BlazkowiczПо-моему проблема в том что в Timezone пропущено двоеточие.(Известное) смещение от UTC - знак и четыре десятичные цифры. Никаких двоеточий там нет.
...
Рейтинг: 0 / 0
15.10.2012, 16:41:46
    #37998944
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Basil A. Sidorov(Известное) смещение от UTC - знак и четыре десятичные цифры. Никаких двоеточий там нет.

RTFM3.2.7.3 Timezones

Timezones are durations with (integer-valued) hour and minute properties (with the hour magnitude limited to at most 14, and the minute magnitude limited to at most 59, except that if the hour magnitude is 14, the minute value must be 0); they may be both positive or both negative.

The lexical representation of a timezone is a string of the form: (('+' | '-') hh ':' mm) | 'Z', where

hh is a two-digit numeral (with leading zeros as required) that represents the hours,
mm is a two-digit numeral that represents the minutes,
'+' indicates a nonnegative duration,
'-' indicates a nonpositive duration.

The mapping so defined is one-to-one, except that '+00:00', '-00:00', and 'Z' all represent the same zero-length duration timezone, UTC; 'Z' is its canonical representation.

When a timezone is added to a UTC dateTime, the result is the date and time "in that timezone". For example, 2002-10-10T12:00:00+05:00 is 2002-10-10T07:00:00Z and 2002-10-10T00:00:00+05:00 is 2002-10-09T19:00:00Z.
...
Рейтинг: 0 / 0
15.10.2012, 16:51:04
    #37998959
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
BlazkowiczRTFM3.2.7.3 Timezones
...Модификатор Z в шаблоне log4j давно ставили? Переменную tz? Форматы strftime или/и лог, например, Apache httpd тоже не смотрели?
...
Рейтинг: 0 / 0
15.10.2012, 16:56:30
    #37998968
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Basil A. SidorovМодификатор Z в шаблоне log4j давно ставили? Переменную tz? Форматы strftime или/и лог, например, Apache httpd тоже не смотрели?
Ну-ка, ну-ка поподробнее какое они все имеют отношение к XSD спецификации?
...
Рейтинг: 0 / 0
15.10.2012, 17:17:38
    #37999014
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
BlazkowiczНу-ка, ну-ка поподробнее какое они все имеют отношение к XSD спецификации?Хреновость определения: The time zone may be specified as Z (UTC) or (+|-)hh:mm .
Хотя ISO 8601 допускает три варианта: the zone designator would be "+01:00", "+0100", or simply "+01" .
...
Рейтинг: 0 / 0
15.10.2012, 17:35:20
    #37999058
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Basil A. SidorovХреновость определения: The time zone may be specified as Z (UTC) or (+|-)hh:mm .
Хотя ISO 8601 допускает три варианта: the zone designator would be "+01:00", "+0100", or simply "+01" .
Ну, вот я не знаю чем они все руководствовались. XSD не понимает без двоеточия, в SimpleDateFormat не понимает двоеточие.
ISO-8601 сохраняет нейтралитет, а разрабы пусть решают как хотят.
...
Рейтинг: 0 / 0
15.10.2012, 19:08:46
    #37999183
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
BlazkowiczНу, вот я не знаю чем они все руководствовались. XSD не понимает без двоеточия, в SimpleDateFormat не понимает двоеточие.Второй, как я понимаю, руководствовался сложившейся практикой, а XSD, видимо, пошёл по пути "максимальной красивости".
...
Рейтинг: 0 / 0
16.10.2012, 06:42:00
    #37999608
SergeyAKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
glassfish, не передается xsd:datуtime
Разобрался в проблеме.

Тестировщик нетбинса делал тег LastEventShtamp с маленькой буквы, т.е. lastEventShtamp. Сделал запрос сервису напрямую, и поставил сначала lastEventShtamp, параметр не передавался. Потом LastEventShtamp , параметр передался.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / glassfish, не передается xsd:datуtime / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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