2012-06-07 5 views
2

WADL 파일이있는 REST 서비스가 있습니다. 이 파일을 참조하고 그 파일에서 메서드에 액세스하려고합니다. WADL 파일의 내용은 다음과 같습니다 : Java의 WADL 파일에서 메소드에 액세스하는 방법은 무엇입니까?

<resource path="/loadPerson"> 
    <method id="loadPerson" name="GET"> 
     <request> 
      <param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="personId" style="query" type="xs:int"/> 
     </request> 
     <response> 
      <ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="person" mediaType="application/xml"/> 
      <ns2:representation xmlns:ns2="http://wadl.dev.java.net/2009/02" xmlns="" element="person" mediaType="application/json"/> 
     </response> 
    </method> 
</resource> 

는 사실 내가 전에 WADL 파일을 해본 적이으로, 그것을 향해 접근하는 방법을 받고 있지 않다. 나는 무엇을해야만 하는가?

+0

이것은 실제 질문이 아닙니다. 맞습니까? 당신은 그것을 google 할 것이다. – Alexander

+1

@Alexander : 나는 구글을 많이했지만 정확한 해결책을 찾지 못했습니다. 기본적으로이 WADL 파일에서 요청 및 응답 매개 변수를 처리하는 방법을 알게되었습니다. 내가 위의 내 이해에 따라 WADL 파일 "loadPerson"의 코드를 게시 한 부분이 메서드이고 personID가 입력 매개 변수 인 경우 잘못되었다고 정정하십시오. 하지만 자바에서 액세스하는 방법? 내가해야 할 일이 뭐지? –

+0

내 의견은 여전히 ​​유효하다고 생각합니다. – Alexander

답변

3

<resource>은 RESTful 방식으로 상호 작용할 URL (표시되지 않는 외부 <resources> 요소의 base 속성으로 지정된 기본 URL과 관련하여)을 식별합니다. <method>에는 GET이라는 name 특성이 있습니다. 즉, 해당 작업을 사용하려면 리소스 URL에서 GET을 수행해야합니다. 내부 <request><param>이므로 GET URL에 검색어 매개 변수를 추가하는 것이 좋습니다. 이 경우 personId=123 (또는 다른 정수)이됩니다. <response>은 XML 또는 JSON 형식으로 답변을 얻을 수 있음을 알려줍니다. 우리는 HTTP 내용 협상을 사용하여 어떤 것을 말해야합니다.

URL이 <resource> 인 URL이 / 인 것으로 지정한다는 점에서 사소한 버그가 있습니다. 올바른 URL을 조합하려고 할 때 툴링에 문제가 발생할 수 있지만 URL이 무엇인지 알 수 있습니다 (RESTful 웹 애플리케이션이 구현되는 경향이 있음을 알면서부터). (더 중간 <resource> 요소가 없습니다; WADL가 있다고 할 수 있습니다)

외부가 <resources> 기본 URL이 http://example.org/foobar 것을 말한다 가정하면 다음 WADL 당신이 당신의 HTTP 클라이언트와 http://example.org/foobar/loadPerson?personId=123에 GET 할 경우 XML을 선호하는 구성했는지 말하고, 당신은 요소를 HTTP 응답의 본문으로 가져 오거나 (예를 들어, personId과 일치하는 것이 없거나 알아볼 권한이없는 경우) 오류가 발생합니다.

+0

내 프로젝트를 실행하고 http : // localhost : 8080/proj-name/resource-path/loadPerson? personId = 123 같은 URL에서 메소드에 액세스하려고 시도했지만 브라우저에서 HTTP 401 - Unauthorized로 오류가 발생했습니다. (이 경우 resource-path =/loadPerson). 이 전화를하는 올바른 방법입니까? 나는 그것이 권한 부여의 오류를주는 것이 옳다고 생각한다. –

+0

다음과 같은 URL을 입력하여 동일한 WADL 파일에서 액세스를 시도한 다른 방법 : http : // localhost : 8080/openempi-admin/openempi-ws-rest/person-query-resource/findRaceByCode /? method = findRaceByCode() & raceCode = 100. 하지만 인증과 동일한 오류가 발생합니다. :( –

관련 문제