Проблема с типом даты на конечной точке CXF - PullRequest
0 голосов
/ 03 июня 2010

Я настроил простую конечную точку CXF с пружиной, которая предоставляет простой объект со свойством java.util.Date. при удаленном вызове с клиентом .NET свойство date всегда равно null.

endopit:

<jaxws:endpoint id="simpleService" implementor="cxf.base.SimpleServiceImpl" address="/SimpleService" />

.NET вызов:

    SimpleServiceClient client = new SimpleServiceClient();
    simpleObject simpleObject = new simpleObject();
    simpleObject.date = new DateTime(2010, 1, 1);
    simpleObject.name = "Simple Object";

    txtResult.Text = client.toString(simpleObject);

, где toString - метод веб-службы незащищенного доступа.

Есть идеи, что мне здесь не хватает?

1 Ответ

1 голос
/ 03 июня 2010

Я полагаю, что это ошибка в фазе маршала на стороне сервера. Если вы не уверены, зайдите на сервер. Кроме того, монитор tcp / ip может отображать переданные элементы SOAP. Например, Eclipse имеет превосходный вид монитора tcp / ip.

Если это ошибка с маршалом, и вы выполняете маршаллинг с помощью JAXB, то вы должны преобразовать значение java.util.Date в значение javax.xml.datatype.XMLGregorianCalendar.

Это можно сделать с помощью класса javax.xml.datatype.DatatypeFactory.

Обязательно используйте перегруженный метод newXMLGregorianCalendar(), соответствующий вашему элементу даты.

Страница с хорошей информацией о различных элементах XSD даты и времени: http://www.w3schools.com/Schema/schema_dtypes_date.asp

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