阐明数据模型文档

时间:2014-04-16 14:44:20

标签: documentation javadoc datamodel enunciate

我在多模块maven项目上使用Enunciate。我使用版本1.28,我只是将其用于SOAP服务的文档目的。

这适用于所有服务。 必须在@WebService注释中声明targetNamespace和endpointInterface,一切正常。我用wsdl / wadl / xsd / html输出得到了我的zip。

通过输出文件识别并发布所有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中,但声明为依赖项:

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

数据模型中的DTO和ENUMS通常提供:

@XmlType(namespace = "https://package/DTO")

Javadoc关于类和属性。

但是我也尝试过Javadoc的getter和setter。

我甚至在项目的示例实现中尝试了一些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文件中。

你有什么想法吗?

3 个答案:

答案 0 :(得分:0)

如果类在不同的Maven模块中,正如您在依赖项中声明的那样,则必须明确告诉Enunciate&#34; import&#34;它们是为了获得JavaDoc。

因此,让我们假装您的模型类位于名为&#34; org.mycompany.widgets.model&#34;的程序包中。并在名为&#34; org.mycompany.gadgets.model&#34;的软件包中。告诉Enunciate导入这样的:

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

答案 1 :(得分:0)

请在类的顶部添加 @XmlRootElement ,以便enunciate使它们出现在数据模型文档中。

Example : 

@XmlRootElement
public class Foo{
....
}

答案 2 :(得分:0)

我认为问题是<scope>provided</scope>。如果类路径中不存在类,则enunciate将无法找到它们。将其更改为<scope>compile</scope>以及@XmlRootElement注释,它应该可以正常工作。