2014-04-16 2 views
0

다중 모듈 메이븐 프로젝트에서 발음을 사용하고 있습니다. 버전 1.28을 사용하고 SOAP 서비스에 대한 문서화 용도로만 사용합니다.데이터 모델 문서화 강조 표시

모든 서비스에서 잘 작동합니다. targetNamespace 및 endpointInterface는 @WebService 주석에 선언되어야하며 모든 것이 잘 동작합니다. wsdl/wadl/xsd/html 출력으로 내 우편 번호를 얻었습니다.

모든 javadoc은 출력 파일을 통해 인식되고 게시됩니다.

하지만 그러나이없는 경우 ... 내가 여기 쓸 것 ...

모든 데이터 모델 파일을하지 않습니다!

<api-import pattern="package.model.**" /> 
<modules> 
    <spring-app disabled="true" /> 
    <docs docsDir="/docs" title="Web Service API" copyright="ME" /> 
    <!-- Disable all the client generation tools --> 
    <basic-app disabled="true" /> 
    <c disabled="true" /> 
    <csharp disabled="true" /> 
    <java-client disabled="true" /> 
    <jaxws-client disabled="true" /> 
    <jaxws-ri disabled="true" /> 
    <jaxws-support disabled="true" /> 
    <jersey disabled="true" /> 
    <obj-c disabled="true" /> 
    <xml forceExampleJson="true" /> 
    <jaxws disabled="true" /> 
    <amf disabled="true" /> 
</modules> 

모듈이 webarchive에 포함되어 있지만 종속성으로 선언되지 않은 :

@XmlType(namespace = "https://package/DTO") 
: 데이터 모델의

<dependency> 
    <groupId>package.model</groupId> 
    <artifactId>model</artifactId> 
    <version>${project.parent.version}</version> 
    <scope>provided</scope> 
</dependency> 

DTO들과 열거 형은 일반적으로 제공되는 나는 다음과 같은 옵션을 시도

그리고 클래스와 속성에 대한 Javadoc.

하지만 getters와 setter에서도 Javadoc을 시도했습니다.

은 난 내 프로젝트의 구현 예에서 일부 XML 주석을 시도 :

@javax.xml.bind.annotation.XmlType(name = "socialGroup", namespace = "http://api.ifyouwannabecool.com/link") 
@javax.xml.bind.annotation.XmlRootElement(name = "socialGroup", namespace = "http://api.ifyouwannabecool.com/link") 

을 성공없이. javadoc는 SOAP 서비스와 마찬가지로 xsd/wsdl/html 파일에 포함되지 않습니다.

의견이 있으십니까?

답변

0

종속성에서 선언 한 것처럼 클래스가 다른 Maven 모듈에 있으면 JavaDoc을 포함시키기 위해 명시 적으로 Enunciate에 "가져 오기"를 지시해야합니다.

모델 클래스가 "org.mycompany.widgets.model"이라는 패키지와 "org.mycompany.gadgets.model"패키지에 있다고 가정 해 보겠습니다. 이런 사람들을 가져올하게 발음을 알려주기 : 그 담아서 그들을 데이터 모델 문서에 표시되도록 있도록

<enunciate ...> 
    ... 
    <api-import pattern="org.mycompany.gadgets.model.**"/> 
    <api-import pattern="org.mycompany.widgets.model.**"/> 
    ... 
0

클래스의 상단에 @XmlRootElement를 추가하십시오.

Example : 

@XmlRootElement 
public class Foo{ 
.... 
} 
0

나는 문제가 <scope>provided</scope> 생각합니다. 클래스가 클래스 경로에 없으면 enunciate가 해당 클래스 경로를 찾을 수 없습니다. @XmlRootElement 주석과 함께 <scope>compile</scope>으로 변경하면 제대로 작동합니다.