Web-сервис Java и клиент .net Проблема с интерполяцией типов данных Date - PullRequest
2 голосов
/ 15 июля 2011

Существует клиент .net, который вызывает веб-сервисы java api - addSchedule (Date startDate, Date endDate). endDate является необязательным - клиент может передать endDate = null, и все в порядке. Но проблема в том, что .Net клиент не может присвоить null типу переменной Date.

Еще одна вещь, которую мы проверили: если ответ веб-службы java передает нулевое значение Date клиенту .net, он получает как. Date. MIN_VALUE .Net. Поэтому мы подумали, что если .Net передает endDate = Date.MIN_VALUE, то java получит endDate = null. Но Java получает Date.MIN_VALUE в качестве действительной даты.

Итак, мы застряли. Пожалуйста, предложите хороший обходной путь.

Ответы [ 2 ]

2 голосов
/ 15 июля 2011

Попробуйте использовать Nullable DateTime (Nullable<DateTime> или DateTime?), поскольку это может содержать нулевое значение.Обычный тип значения (например, DateTime) не может содержать значение NULL и будет иметь значение по умолчанию (в случае DateTime это DateTime.MinValue, но для int это 0)

0 голосов
/ 21 июля 2011

Нам нужно добавить nillable = true в метод веб-сервиса Java: - addSchedule(Date startDate, @XmlElement(nillable=true) Date endDate).С этим новым определением wsdl клиент .Net генерирует AddScheule(DateTime, <Nullable>DateTime). Это поддерживается версиями jar metro 2.2 (jaxb и jaxws.jar).Если jre6 имеет старую версию этих jar-файлов, загрузите версию jar-версии 2.2 и поместите в папку JRE_HOME / lib / endorsed.Используйте тот же путь JRE, чтобы построить свой проект.

А при развертывании приложения на tomcat скопируйте jaxb и jaxws.jar [версия 2.2] в каталог CATALINA_HOME / endorsed.Вы готовы идти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...