2

既存の Java REST (Jersey を使用) プロジェクトに「enunciate」を使用しています。私は build.xml と enunciate.xml を持っています: 出力ファイル docs.zip が作成されますが、このファイルを解凍した後、私は持っています: css/ dir, js/ dir, robots.txt, model.html, index.html, favicon.ico, crossdomain.xml、application.wadl、apple-touch-icon.png ファイル。

index.html と model.html には、私の Java REST コードからのドキュメントがありません。ここで誰か助けてくれませんか?私は「発音」の経験がありません。

ありがとう、

---> これは REST コードの例の 1 つです。

@Path("/{spacecraftId}/log")

パブリック クラス UserLogHandler は、ProcessCommunicationFacilityFailureListenerInterface、MessageCustomerInterface、IMessageAvailable を実装します {

/**
 *  Retrieve log file information from MySQL database:
 *
 */
@GET
@Produces(MediaType.TEXT_XML)
public Response retrieveLogFromDatabase(
        @PathParam("spacecraftId") String spacecraftId,
        @Context HttpServletRequest servletRequest)
{
}

}

---> 「build.xml」ファイル:

<!--The enunciate classpath points to all the jars in the "lib" directory.-->
<path id="enunciate.classpath">

 <pathelement path="${acmd-class-dir}:${mdasclasses.dir}"/>

  <fileset dir="/TPS/V19.0.2">
    <include name="xerces/xercesImpl.jar"/>
    <include name="xerces/xml-apis.jar"/>
    <include name="jdkaddons/jdom.jar"/>
    <include name="jdkaddons/mail.jar"/>
    <include name="jdkaddons/commons-codec.jar"/>
    <include name="jdkaddons/asm-3.1.jar"/>
    <include name="jdkaddons/jersey-core-1.7.jar"/>
    <include name="jdkaddons/jersey-server-1.7.jar"/>
    <include name="jdkaddons/jsr311-api-1.1.1.jar"/>
    <include name="jdkaddons/jersey-client-1.7.jar"/>
    <include name="jdkaddons/jersey-multipart-1.7.jar"/>
  </fileset>


  <fileset dir="${enunciate.home}/lib">
    <include name="*.jar"/>
  </fileset>

  <fileset dir="${enunciate.java}"> 
    <include name="lib/tools.jar"/>
  </fileset>           

</path>

<!--define the task...-->
<taskdef name="enunciate" classname="org.codehaus.enunciate.main.EnunciateTask">
  <classpath refid="enunciate.classpath"/>
</taskdef>

<enunciate basedir="./" verbose="true" configFile="./enunciate.xml" >

  <include name="**/*.java"/>
  <classpath refid="enunciate.classpath"/>
  <export artifactId="docs" destination="./docs.zip"/>  
  <javacArgument argument="-g"/> 
</enunciate>

---> 「enunciate.xml」ファイル:

<api-classes>
    <include pattern="/tps/tomcat/lib/servlet-api.jar"/>>

    <exclude pattern="com.sun.jersey.multipart.FormDataParam"/>
</api-classes>

<services>
    <rest defaultRestSubcontext="api">
    </rest>
</services>

<webapp disabled="true">
</webapp>

<modules>
  <disable-rule id="csharp.warnings"/>
  <disable-rule id="c-warnings"/>
  <disable-rule id="obj-c.warnings"/>
  <basic-app disabled="true"/>
  <c disabled="true"/>
  <csharp disabled="true"/>
  <jaxws-ri disabled="true"/>
  <obj-c disabled="true"/>
  <amf disabled="true"/>
  <gwt disabled="true"/>
  <jboss disabled="true"/>
  <object-c disabled="true"/>
  <rubby disabled="true"/>
  <jaxws-client disabled="true"/>

  <jersey disabled="false"/>

  <docs title="ICMD API"  docsDir="./" splashPackage="cmd.acmd_mdc_servlet" includeDefaultDownloads="true" includeExampleXml="false" disableRestMountpoint="true" copyright="copyright" forceExampleJson="true"/>
</modules>

4

1 に答える 1

2

「インクルード パターン」が正しくありません。「インクルード」は、 jarではなくクラスを参照します。したがって、次のようになります。

 <include pattern="com.mycompany.api.resources.**"/>

また、Enunciate を呼び出すときに、これらすべてのクラスがクラスパス上にあることを確認してください。

于 2013-12-05T00:47:03.157 に答える