powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при обращении к сервлету с FOP на Tomcat
9 сообщений из 9, страница 1 из 1
Ошибка при обращении к сервлету с FOP на Tomcat
    #34794808
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем есть сервлет:
Код: 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
Ошибка при обращении к сервлету с FOP на Tomcat
    #34794865
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
java.lang.NoClassDefFoundError: org/apache/xmlgraphics/util/Service
- проверили наличие класса?
...
Рейтинг: 0 / 0
Ошибка при обращении к сервлету с FOP на Tomcat
    #34794892
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, файл fop.jar лежит в c:\Program Files\Apache Software Foundation\Tomcat 5.5\shared\lib\
...
Рейтинг: 0 / 0
Ошибка при обращении к сервлету с FOP на Tomcat
    #34794929
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- а указанный класс в нем присутствует?
...
Рейтинг: 0 / 0
Ошибка при обращении к сервлету с FOP на Tomcat
    #34794955
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присутствует на 100%.
...
Рейтинг: 0 / 0
Ошибка при обращении к сервлету с FOP на Tomcat
    #34794959
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может какие то заморочки томката с JRE?
...
Рейтинг: 0 / 0
Ошибка при обращении к сервлету с FOP на Tomcat
    #34794970
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ashitkin.AlexПрисутствует на 100%.
- т. е. JAR открыли и файл там нашли? тогда попробуйте это
...
Рейтинг: 0 / 0
Ошибка при обращении к сервлету с FOP на Tomcat
    #34795232
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то пока не очень помогает. Уже везде положил эти файлы где только мог.
...
Рейтинг: 0 / 0
Ошибка при обращении к сервлету с FOP на Tomcat
    #34795877
Ashitkin.Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, так как понимания причин проблемы не было, снес jre и tomcat и установил заново. После этого все заработало! Выгрузка работает и в rtf и в pdf. Спасибо большое за помощь!!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при обращении к сервлету с FOP на Tomcat
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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