Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при обращении к сервлету с FOP на Tomcat / 9 сообщений из 9, страница 1 из 1
12.09.2007, 15:37:47
    #34794808
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
В общем есть сервлет:
Код: plaintext
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.
 import  java.io.*;
 import  javax.servlet.*;
 import  javax.servlet.http.*;
//JAXP
 import  javax.xml.transform.Transformer;
 import  javax.xml.transform.TransformerFactory;
 import  javax.xml.transform.Source;
 import  javax.xml.transform.Result;
 import  javax.xml.transform.stream.StreamSource;
 import  javax.xml.transform.sax.SAXResult;
// FOP
 import  org.apache.fop.apps.FOUserAgent;
 import  org.apache.fop.apps.Fop;
 import  org.apache.fop.apps.FOPException;
 import  org.apache.fop.apps.FopFactory;
 import  org.apache.fop.apps.MimeConstants;

 public   class  my_fo  extends  HttpServlet
{
       private  FopFactory fopFactory = FopFactory.newInstance();
       private  TransformerFactory tFactory = TransformerFactory.newInstance();
        
 public   void  doGet(HttpServletRequest request,
                   HttpServletResponse response)  throws  ServletException {
     try  {
       		
        Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
       // Transformer transformer = tFactory.newTransformer();
        Source xsltSrc =  new  StreamSource( new  File("xml2pdf.xsl"));
        Transformer transformer = tFactory.newTransformer(xsltSrc);
        Result res =  new  SAXResult(fop.getDefaultHandler());
		Source src =  new  StreamSource( new  File("simple.fo"));
        
        transformer.transform(src, res);
        response.setContentType("application/pdf");
        response.setContentLength(out.size());
    
        response.getOutputStream().write(out.toByteArray());
        response.getOutputStream().flush();
    }  catch  (Exception ex) {
         throw   new  ServletException(ex);
    }
}
}

При попытке обратиться Tomcat вываливается с ошибкой:
Код: plaintext
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.
exception 
javax.servlet.ServletException: Error instantiating servlet  class  my_fo
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 432 )
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 105 )
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 148 )
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: 869 )
	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: 664 )
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java: 527 )
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java: 80 )
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java: 684 )
	java.lang.Thread.run(Unknown Source)

root cause 
java.lang.NoClassDefFoundError: org/apache/xmlgraphics/util/Service
	org.apache.fop.util.ContentHandlerFactoryRegistry.discover(ContentHandlerFactoryRegistry.java: 102 )
	org.apache.fop.util.ContentHandlerFactoryRegistry.<init>(ContentHandlerFactoryRegistry.java: 47 )
	org.apache.fop.apps.FopFactory.<init>(FopFactory.java: 75 )
	org.apache.fop.apps.FopFactory.newInstance(FopFactory.java: 165 )
	my_fo.<init>(my_fo.java: 31 )
	sun.reflect.NativeConstructorAccessorImpl.newInstance0( Native  Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	java.lang.reflect.Constructor.newInstance(Unknown Source)
	java.lang. Class .newInstance0(Unknown Source)
	java.lang. Class .newInstance(Unknown Source)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 432 )
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 105 )
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 148 )
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: 869 )
	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: 664 )
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java: 527 )
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java: 80 )
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java: 684 )
	java.lang.Thread.run(Unknown Source)

Строка 31: private FopFactory fopFactory = FopFactory.newInstance(); и почему то в этом месте не может создаться объект. Кто нибудь сталкивался с подобным? В чем может быть дело?

Пробовал перенести строку в тело класса, но и там с аналогичной ошибкой вываливается.
fop - 0.94 с другими не пробовал.
...
Рейтинг: 0 / 0
12.09.2007, 15:49:07
    #34794865
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
Код: plaintext
java.lang.NoClassDefFoundError: org/apache/xmlgraphics/util/Service
- проверили наличие класса?
...
Рейтинг: 0 / 0
12.09.2007, 15:52:31
    #34794892
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
Да, файл fop.jar лежит в c:\Program Files\Apache Software Foundation\Tomcat 5.5\shared\lib\
...
Рейтинг: 0 / 0
12.09.2007, 15:59:35
    #34794929
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
- а указанный класс в нем присутствует?
...
Рейтинг: 0 / 0
12.09.2007, 16:03:13
    #34794955
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
Присутствует на 100%.
...
Рейтинг: 0 / 0
12.09.2007, 16:03:52
    #34794959
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
Может какие то заморочки томката с JRE?
...
Рейтинг: 0 / 0
12.09.2007, 16:05:46
    #34794970
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
Ashitkin.AlexПрисутствует на 100%.
- т. е. JAR открыли и файл там нашли? тогда попробуйте это
...
Рейтинг: 0 / 0
12.09.2007, 16:50:25
    #34795232
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
Что то пока не очень помогает. Уже везде положил эти файлы где только мог.
...
Рейтинг: 0 / 0
12.09.2007, 19:49:28
    #34795877
Ashitkin.Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обращении к сервлету с FOP на Tomcat
В общем, так как понимания причин проблемы не было, снес jre и tomcat и установил заново. После этого все заработало! Выгрузка работает и в rtf и в pdf. Спасибо большое за помощь!!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при обращении к сервлету с FOP на Tomcat / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]