我在多模块 Maven 项目中使用 Enunciate。我使用 1.28 版,我只是将它用于 SOAP 服务的文档目的。
这适用于所有服务。targetNamespace 和 endpointInterface 必须在 @WebService 注释中声明,一切正常。我得到了带有 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。
但我也在 getter 和 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 文件中。
你有什么主意吗?