ContextFactory non trouvé
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:
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:
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:
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.