다음과 같은 문제로 며칠 동안 고생하고 있습니다. 저는 저널 메일 링리스트와 네트 전반에 대한 답변을 많이 찾았습니다. 그러나이 특정 질문에 대한 답을 찾을 수 없었습니다. 문제 도메인을 설정 리소스 목록에 대해 생성 된 WADL
...나는이처럼 보이는 간단한 JAX-RS 자원을 만든 톰캣 7
내부 뉴저지 1.16을 사용하고 있습니다 :
@Path("/")
@Produces({ "application/xml", "text/plain" })
public class ExampleResource {
@GET
public List<Thing> getThings() {
List<Thing> list = new ArrayList<>();
list.add(new Thing("a thing 1", "a thing description 1"));
list.add(new Thing("a thing 2", "a thing description 2"));
return list;
}
}
Thing
은 이렇게 보이는 JAXB 주석 POJO입니다.
@XmlRootElement(name = "thing")
public class Thing {
private String name;
private String description;
// getters, setters and @XmlElement annotations ommited for brevity
또한 WadlGeneratorJAXBGrammarGenerator.class
를 구성한 내가 GET http://localhost:8092/rest
를 요청할 때 마법처럼 작동합니다 - Thing
의 친절 형식의 컬렉션을 반환됩니다. 내가 말했듯이,
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<application xmlns="http://wadl.dev.java.net/2009/02">
<doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 1.16 11/28/2012 02:09 PM" />
<grammars>
<include href="application.wadl/xsd0.xsd">
<doc title="Generated" xml:lang="en" />
</include>
</grammars>
<resources base="http://localhost:8092/rest/">
<resource path="/">
<method id="getThings" name="GET">
<response>
<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02"
xmlns="" element="thing" mediaType="application/xml" />
<representation mediaType="text/plain" />
</response>
</method>
</resource>
</resources>
</application>
거의 완벽한하고, 거기에 문제가있다 :
자동으로 생성 된 WADL http://localhost:8092/rest/application.wadl
은 다음과 같습니다 거의 완벽합니다.
<ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02"
xmlns="" element="thing" mediaType="application/xml" />
WADL
는/getThings
가
List<Thing>
를 돌려 설명되지 않는다. 대신
xsd0.xsd
에있는 단일 요소
thing
을 참조하는 것처럼 보입니다. 예를 들어 피드 할 때. wadl2java, 유형이 지정되지 않은 클라이언트를 생성합니다. 어떻게 든이 특정 자원이
목록을 반환하는 것을 나타냅니다 자동 WADL 생성이 가능한 경우 List<Thing> asXml = root().getAsXml(new GenericType<List<Thing>>(){});
같은 내가 가지고 List<Thing>
수동으로 코드에 도착하기 위해 , 뭔가 아는 사람 있나요 특정 유형의 리소스가입니까?
그리고 "ThingList"JAXB-annotated 클래스를 추가로 작성하여 저어지 리소스에 반환하고 싶습니다.
나는 거의 거기 "완벽한"WADL를 생성와 오전, 그것은
가 대단히 감사합니다 ... 내가 놓친 거지 그냥이 (희망) 작은 조각입니다!
GitHub의 에 전체 예는, 그러나? wsdls에서 목록과 간단한 객체는 거의 같은 방식으로 표현됩니다. – acdcjunior
WSDL에 대한 경험이 거의 없으므로 WSDL과 비교하는 것이 내 마음에 들지 않았습니다. 그래서 당신에게는 좋은 지적이 있습니다. 그것이 어떻게 생겼는지에 관해서는, 나는 그것에 대해서 너무 확신하지 못한다. WSDL에서 무엇을 원할 수 있는지 예를 들어 주시겠습니까? – Svilen
WSDL에서 엔티티 (예 :'Person')는 각 속성에 대해 하나의 요소가있는'xs : complexType'이됩니다. '문자열 이름'과 같은 속성은' '처럼 보입니다 ('minOccurs ='0 '' 그것은 선택 필드입니다). 'String [] nicknames'라고하는 속성은' '. 보시다시피, 간단한 필드에서리스트로의 유일한 차이점은'maxOccurs = 'unbounded'입니다. –
acdcjunior