지금 Jersey를 사용하여 REST 웹 서비스를 며칠 동안 사용해 왔으며 모든 CRUD 작업을 여러 가지 교환 형식 (XML, JSON, Google Protobuf.계약 우선 접근 방식의 저지를 사용하는 WADL/생성 된 XSD의 문제
그러나 WADL 및 XSD가 자동으로 생성되는 것과 관련된 몇 가지 문제에 직면하고 있습니다. 상황이
객체가이 세 가지 형식으로 교환 정의하려면, 나는 "계약 우선"접근 따랐다
: 내가 쓴 XSD에서
- 을, 나는 생성 된 내 JAXB를 사용하는 모델 클래스;
- 필자가 작성한 동등한 proto 파일에서 Google Protobuf 클래스를 생성했습니다 (내부적으로 하나의 고유 한 모델을 갖기 위해 이들을 JAXB 생성 객체로 변환하는 방법이 있습니다). 그러나
, 나는 수업이도, 나는이 스키마 파일 (.XSD 및 .proto)를 공유하고 잘 자동으로 생성과 통합을 하고 싶은 생성 할 수 있도록 내 사용자가 원하는만큼 WADL. this 위키 페이지에 그 목적
, 감사 :- 나는이 애플리케이션 -을 추가 한
/schema/schema.xsd
/schema/schema.proto
에서 두 파일을 노출 한 문법 파일 :
(210)<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <grammars xmlns="http://wadl.dev.java.net/2009/02" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xi="http://www.w3.org/1999/XML/xinclude"> <include href="../schema/schema.xsd" /> </grammars>
나는 사용자 정의 WADL 생성기를 추가 한 :
public class RichWadlGeneratorConfig extends WadlGeneratorConfig { @Override public List<WadlGeneratorDescription> configure() { return generator(WadlGeneratorApplicationDoc.class) .prop("applicationDocsStream", "application-doc.xml") .generator(WadlGeneratorGrammarsSupport.class) .prop("grammarsStream", "application-grammars.xml") .descriptions(); } }
내가 /rest/application.wadl
명중 아래 WADL에 나타나는이 방법 :
<grammars>
<include href="../schema/schema.xsd"/>
<include href="application.wadl/xsd0.xsd">
<doc title="Generated" xml:lang="en"/>
</include>
</grammars>
문제
/rest/application.wadl/xsd0.xsd
은 수업에서 자동으로 생성되지만, 처음에는 schema.xsd
에있는 것과 다른 과 다른입니다.이 WADL에 wadl2java
같은 도구를 호출하는 것에 더하여 는
/rest/application.wadl/xsd0.xsd
지금 (동일 목적을위한 두 정의)에 충돌되어, 비참 아마도 때문에
/schema/schema.xsd
및 실패.
이 자동으로 생성 된 XSD의 생성과 확산을 해제하는 방법이 있나요
(I이 "계약 우선"접근 방식을 다음있어 이후 필요하지 않기 때문에)
/rest/application.wadl/xsd0.xsd
이 명중 할 때 , 방법을 "재정의"내 수동으로 작성 XSD와 그 내용이 무엇입니까? 는 (내가 주변에 검색 좀 및 사용자 정의 WADL를 생성하기 위해, WadlResource에 대해 찾았지만 XSD 생성 자체에 대해 아무것도 발견) 당신의 도움을 사전에
질문
? 그렇지 않으면
감사합니다!
M.
편집
1) 나는 뉴저지 팀에 문제를 제기하고 응답을 얻었다 : 나는 티켓을 제기) http://java.net/projects/jersey/lists/users/archive/2012-06/message/8
2 (JERSEY-1230) , Pavel의 지시에 따르면. 현재 나에게 직접 수정본을 제출하거나 저지 팀으로부터 수정본을받는 중입니다.
문제가 해결되었습니다. http://java.net/jrow/browse/JERSEY-1230 –
위의 내용을 질문에 대한 답변으로 게시 한 다음 동의해야합니다 (응답되지 않은 Q의 목록에서 해당 내용을 지우려면).). – scottb