0

マルチモジュールの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を試しました。

プロジェクトの実装例からいくつかの 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")

成功せずに。SOAP サービスの場合とは異なり、javadoc は xsd/wsdl/html ファイルには含まれません。

何か考えはありますか?

4

3 に答える 3

0

問題は だと思います<scope>provided</scope>。クラスがクラスパスに存在しない場合、enunciate はそれらを見つけることができません。注釈<scope>compile</scope>とともに に変更すると、機能するはずです。@XmlRootElement

于 2015-01-21T22:42:18.793 に答える
0

クラスの上に@XmlRootElementを追加して、enunciate によってデータ モデルのドキュメントに表示されるようにしてください。

Example : 

@XmlRootElement
public class Foo{
....
}
于 2014-12-12T23:52:15.183 に答える