Bonjour,

Voila j'utilise JaxB dans une application web pour créer un flux xml à partir d'une feuille de style xml shema. Ce flux xml me permet de générer un page pdf dynamique.

En local sur ma machine tout fonctionne très bien mais lorsque j'ai voulus tester l'application sur un serveur Unix j'ai obtenu le message d'erreur suivant :

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory not found
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:151)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:299)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:244)
        at cram.pdf.GenererXML.getXml(GenererXML.java:133)
        at cram.pdf.PDFServlet.getSource(PDFServlet.java:26)
        at cram.pdf.PDFServlet.service(PDFServlet.java:18)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:116)
        ... 20 more
[ERROR] Logger not set
ERROR:  'null'
FATAL ERROR:  'Could not compile stylesheet'
javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:824)
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:619)
        at cram.pdf.GenererPDF.getPDF(GenererPDF.java:47)
        at cram.pdf.PDFServlet.service(PDFServlet.java:22)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:595)
Est ce que quelqu'un sait d'où ça peut venir? Parce que là moi franchement je suis perdu..

Voila les lignes de codes qu'indique l'erreur :

GenererXML.java :
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
 
	public Source getXml(){
		try {
			JAXBContext context = JAXBContext.newInstance("cram.pdf.classes");//<--ligne 133
			Marshaller m = context.createMarshaller();
			m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
 
			DOMResult result = new DOMResult();
			m.marshal(cram, result);
 
			return new DOMSource(result.getNode());
 
		} catch (JAXBException e) {
			e.printStackTrace();
		}
		return null;
	}
GenererPDF.java :
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
 
public void getPDF(Source xml, OutputStream out){
		try {
			Driver driver = new Driver();
			driver.setRenderer(Driver.RENDER_PDF);
			driver.setOutputStream(out);
			Result resultat = new SAXResult(driver.getContentHandler());
 
			InputStream xslIn = GenererPDF.class.getClassLoader().getResourceAsStream("/export/home/bastien/apache-tomcat-6.0.16/webapps/Intranet/WEB-INF/classes/cram/pdf/FOPCram.xsl");
			Source style = new StreamSource(xslIn);
 
			TransformerFactory transformerFactory = TransformerFactory.newInstance();
 
			Transformer transformer = transformerFactory.newTransformer(style);//<--ligne 47
			transformer.setURIResolver(URI_RESOLVER);
			transformer.transform(xml, resultat);
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}
Voila si vous avez besoin de renseignment supplémentaire n'hésitez pas.