Bonjour,
Je suis actuellement de developper un web server glassfish ayant pour but de creer des jars a partir de projets deja compilés.
J'utilise ant pour faire ceci mais je suis bloqué face à une erreur NoClassDefFoundError sur la class Locator. J'ai ajouté les librairies ant.jar et ant-launcher.jar au projet.
voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String baseDir = getServletContext().getRealPath("/Projets/HelloMobile/build.xml");
        Project ant = new Project();
        ProjectHelper helper = new ProjectHelperImpl();
        //ajout d'un écouteur pour voir les événements générés par ANT
        org.apache.tools.ant.DefaultLogger log = new org.apache.tools.ant.DefaultLogger();
 
        log.setErrorPrintStream(System.err);
        log.setOutputPrintStream(System.out);
        log.setMessageOutputLevel(Project.MSG_INFO);
        ant.addBuildListener(log);
        helper = ProjectHelper.getProjectHelper();
        ant.addReference("ant.projectHelper",helper);
        ant.init();
        helper.parse(ant, new File(baseDir));
        ant.executeTarget("build");
Voici mon fichier xml d'une appli type helloworld :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<project name="HelloMobile" default="jar" basedir=".">
    <description>Builds, tests, and runs the project .</description>
 
	<target name="clean">
		<delete dir="dist/HelloMobile.jar"/>
	</target>
 
	<!-- target qui cree le JAR -->
	<target name="build" depends="clean">
 
		<!-- creation d un repertoire pour le JAR -->
		<mkdir dir="dist"/>
 
		<!-- creation du JAR, dans mon exemple son nom sera monProjet.jar -->
		<jar destfile="dist/HelloMobile.jar" basedir="build">
			<manifest>
				<!-- on indique la classe principale du JAR -->
				<attribute name="Main-Class" value="hello.Midlet"/>
			</manifest>
		</jar>
	</target>
et enfin le log de l'erreur :
WC1406: Servlet.service() for servlet installjar threw exception java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Locator at org.apache.tools.ant.util.FileUtils.fromURI(FileUtils.java:1261) at org.apache.tools.ant.Location.<init>(Location.java:87) at org.apache.tools.ant.Location.<init>(Location.java:70) at org.apache.tools.ant.helper.ProjectHelperImpl$TaskHandler.init(ProjectHelperImpl.java:741) at org.apache.tools.ant.helper.ProjectHelperImpl.handleElement(ProjectHelperImpl.java:615) at org.apache.tools.ant.helper.ProjectHelperImpl.access$600(ProjectHelperImpl.java:52) at org.apache.tools.ant.helper.ProjectHelperImpl$ProjectHandler.startElement(ProjectHelperImpl.java:460) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:491) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:220) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:872) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) at org.apache.tools.ant.helper.ProjectHelperImpl.parse(ProjectHelperImpl.java:133) at Instjar.installjar.processRequest(installjar.java:70) at Instjar.installjar.doGet(installjar.java:193) at javax.servlet.http.HttpServlet.service(HttpServlet.java:718) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Si vous avez une idée, je suis preneur.
Merci d'avance