Подтвердить что ты не робот

Тип объекта Date/DateTime в AmbientDataFramework

У меня возникла проблема с типом Date (java)/DateTime (.net) при использовании Ambient Data Framework в SDL Tridion 2009.

Я устанавливаю значение претензии в java следующим образом:

Date myDate = rs.getDate("DATE_FIELD_IN_DB");
store.put(CLAIM_URI_DATE, myDate);

Это здорово, и жизнь фантастическая:)

В моем веб-приложении (которое есть .net) мне нужно получить это значение из хранилища претензий, когда я пытаюсь это сделать, он терпит неудачу:

Мой код:

if (_store.Contains(new Uri("taf:claim:company:date"))) {
  DateTime claimdata = _store.Get<DateTime>("taf:claim:company:date"); 
  Response.Write(claimdata.ToString());
}

И сообщение об ошибке:

[RuntimeException] Codemesh.JuggerNET.NTypeValue.Throw(Int64 inst) +373 Codemesh.JuggerNET.JavaClass.ThrowTypedException(Int64 inst) +1365 Codemesh.JuggerNET.JavaMethod.CallInt(JavaProxy jpo) +233 Tridion.ContentDelivery.AmbientData.JuggerNetTypeHelper.FromProxyObject(Object proxyObject) +738
Tridion.ContentDelivery.AmbientData.ClaimStore.Get(Uri ClaimUri) +109

Я также попытался получить в качестве объекта, который затем перетащил в DateTime. Я, очевидно, делаю здесь действительно основную ошибку, любая помощь будет принята с благодарностью.

Я также прочитал документацию SDL здесь: http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_26FDE76C277D43F893175E512EFDF09A, которая показывает, что объект данных Java был преобразован в .net DateTime.

Спасибо

Джон

UPDATE

В соответствии с предложениями Питера, я проверил и обеспечил правильные файлы jar на месте.

Возможно, стоит отметить, что дата хранится в базе данных SQL как тип "Дата", типичное значение не включает метку времени, например "2011-09-03". Тем не менее все это отлично работает на Java, и я могу работать со значением в качестве даты. Однако при получении значения в .Net генерируется типизированное исключение.

4b9b3361

Ответ 1

Он должен преобразовать его автоматически. Вы уверены, что не используете другой объект Date, чем java.util.Date? Там их немало...

Если вы действительно не можете заставить его работать, вы можете обойти его, сохранив дату в виде строки (в формате ISO 8601), а затем используя DateTime.Parse на стороне .NET.

Но, как я уже сказал, он нормально работает, поэтому, возможно, что-то происходит неправильно.

Работает ли ваш ADF для других вещей в .NET? Возможно, ему не хватает шага настройки для .NET-стороны вещей...

Ответ 2

Немного длинный снимок, но можете ли вы проверить, что установлен правильный драйвер JDBC, как указано в этом вопросе/ответе?

Исключение загрузки CustomMeta из Tridion Broker Service (2009 SP1)

Значение Date, содержит ли оно время? Можете ли вы убедиться, что это происходит, когда вы получаете значение из магазина?