10

私は非常に単純だと思っていたものに苦労しています.既存の一連のRESTサービスのドキュメントを生成することです.これは基本的にPOJOがJAX-RSアノテーションで注釈を付けたものです. 実装プロバイダーとしてJerseyを使用しています。REST API は、Spring Web アプリケーションの一部としてデプロイされます。

REST サービス POJO のドキュメントのみを生成したいので、enunciate.xml構成は次のようになります。

<?xml version="1.0"?>
<enunciate label="novaglobalapi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.25.xsd">

    <api-classes>
        <include pattern="com.something.api.rest.*"/>
    </api-classes>

    <modules>
        <docs docsDir="restapi" title="REST API"/>
    </modules>
</enunciate>

enunciateドキュメントで提案されているように、 pom.xmlを構成しました。

<build>
...
    <plugin>
        <groupId>org.codehaus.enunciate</groupId>
            <artifactId>maven-enunciate-plugin</artifactId>
            <version>1.25</version>
            <executions>
                <execution>
                    <goals>
                        <goal>docs</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <configFile>enunciate.xml</configFile>
            </configuration>
    </plugin>
...
</build>

しかし、実行するmvn enunciate:docsと、次のビルド エラーが発生します。

[ERROR] Failed to execute goal org.codehaus.enunciate:maven-enunciate-plugin:1.25:docs (default-cli) on project NovaGlobalSSOAPI: Problem assembling the enunciate app. invalid LOC header (bad signature) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.enunciate:maven-enunciate-plugin:1.25:docs (default-cli) on project NovaGlobalSSOAPI: Problem assembling the enunciate app.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Problem assembling the enunciate app.
    at org.codehaus.enunciate.DocsMojo.execute(DocsMojo.java:99)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
    at java.util.zip.ZipFile.read(Native Method)
    at java.util.zip.ZipFile.access$1200(ZipFile.java:31)
    at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:459)
    at java.util.zip.ZipFile$1.fill(ZipFile.java:242)
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)
    at java.io.DataInputStream.readFully(DataInputStream.java:178)
    at java.util.jar.JarFile.getBytes(JarFile.java:362)
    at java.util.jar.JarFile.getManifestFromReference(JarFile.java:161)
    at java.util.jar.JarFile.getManifest(JarFile.java:148)
    at org.codehaus.enunciate.main.Enunciate.scanClasspath(Enunciate.java:409)
    at org.codehaus.enunciate.main.Enunciate.doGenerate(Enunciate.java:319)
    at org.codehaus.enunciate.ConfigMojo$MavenSpecificEnunciate.doGenerate(ConfigMojo.java:634)
    at org.codehaus.enunciate.main.Enunciate$Stepper.step(Enunciate.java:1706)
    at org.codehaus.enunciate.main.Enunciate$Stepper.stepTo(Enunciate.java:1738)
    at org.codehaus.enunciate.DocsMojo.execute(DocsMojo.java:95)
    ... 21 more

何が間違っているのかわかりません。何か案は?

4

2 に答える 2

2

ドキュメントディレクトリを設定した場合、それは起こりますか?

<build>
...
    <plugin>
        <groupId>org.codehaus.enunciate</groupId>
        <artifactId>maven-enunciate-plugin</artifactId>
        <version>1.25</version>
        <executions>
            <execution>
                <goals>
                    <goal>docs</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <!-- the directory where to put the docs -->
            <docsDir>${project.build.directory}/docs</docsDir>
            <configFile>enunciate.xml</configFile>
        </configuration>
    </plugin>
...
</build>

編集:docsDirを閉じるのを忘れた

于 2012-06-15T20:45:25.420 に答える