Произнести не удается определить тип вывода для javax.ws.rs.core.Response

У меня есть веб-служба REST, которая возвращает объект "javax.ws.rs.core.Response". Когда я запускаю enunciate, он не может определить тип вывода, поэтому ответ в сгенерированном wadl остается пустым:

Если код выглядит так:

@GET
@Path("/webservice")
@Produces({"application/xml"})
@TypeHint(myClass.class)
javax.ws.rs.core.Response methodCall(...

ВАДЛ гласит:

    ...
    <wadl:representation mediaType="application/xml"/>
</wadl:response>

Скорее, чем:

    ...
    <wadl:representation mediaType="application/xml" element="ns1:myClass" xmlns:ns1="http://pathTo/schema"/>
</wadl:response>

В любом случае, нужно ли произносить, чтобы распознать тип возвращаемого ответа?


person TERACytE    schedule 11.03.2011    source источник


Ответы (1)


Да. Используйте аннотацию @org.codehaus.enunciate.jaxrs.TypeHint к методу, чтобы дать Enunciate подсказку о типе вывода.

person Ryan Heaton    schedule 12.03.2011
comment
Я добавил @TypeHint(my.class) в свой метод и импортировал org.codehaus.enunciate.jaxrs.TypeHint;. В моем pom.xml я добавил следующий xml, но, похоже, это не меняет вывод. Есть ли что-то еще, что мне нужно сделать? ‹dependency› ‹groupId›org.codehaus.enunciate‹/groupId› ‹artifactId›enunciate-core-annotations‹/artifactId› ‹version›1.21.1‹/version› ‹/dependency› - person TERACytE; 13.03.2011
comment
Итак, у нас есть тесты, доказывающие, что аннотация @TypeHint работает. Вы можете увидеть тестовый модуль здесь: svn.codehaus.org/ провозгласить/магистраль/произнести/интеграционные-тесты/ - person Ryan Heaton; 14.03.2011
comment
Оказывается, enunciate может иметь проблему, когда класс, указанный в @TypeHint, является внешним по отношению к модулю maven, в котором он находится. (см. jira.codehaus.org/browse/). Я собираюсь получить доступ к ответу Райана. - person TERACytE; 17.03.2011
comment
как насчет того, чтобы указать, является ли тип списком объектов? - person kalyan; 06.02.2012
comment
@kalyan В подсказках типов сейчас определенно нет поддержки каких-либо универсальных вещей. - person Patrick; 27.09.2012