2013-11-14 4 views
2

Я использую 'enunciate' для существующего проекта Java REST (используя Джерси). У меня есть 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.enunciate для создания документов для существующего java REST API

index.html и model.html не имеют каких-либо документов из моего кода REST JAVA. Может ли кто-нибудь помочь мне здесь? У меня нет опыта «провозглашения».

Спасибо,

---> это один из примера REST код:

@Path ("/ {spacecraftId}/лог")

класс 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> 

+0

проблема исправлена: мне нужно включить имя пакета java в под тегами . – derek

ответ

2

Неверный ваш шаблон включения. «Включает» относятся к классы, а не банки. Так что это может выглядеть примерно так:

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

Кроме того, убедитесь, что все эти классы на вашем пути к классам при вызове излагают.

Смежные вопросы