Page 1 of 1

fop weblogic jar conflict

PostPosted: Wed Jul 13, 2011 1:12 am
by tosswang
hi,all

This is what I have:

-jdk-1.6、 -docx4j-nightly-20110710.jar、linux。

I get error the issue org.docx4j.openpackaging.exceptions.Docx4JException: FOP issues when i convert docx to pdf,but when the program run in windows ,i can get right result,how can i resolve this issue?

i really appreciate if someone could point to the problem.
Thank you in advance!

tosswang

Re: docx to pdf conversion problem:Fop issue

PostPosted: Wed Jul 13, 2011 2:14 am
by jason
Please post:
1. full stack trace
2. sample docx exhibiting the problem

Nobody can help you without that basic information.

When you set logging on the PDF output to debug level, you will see the intermediate XSL FO (assuming processing gets that far). Is this generated? Is it the same on both platforms?

Is your fop font cache corrupt? Try deleting .fop/fop-fonts.cache

Re: docx to pdf conversion problem:Fop issue

PostPosted: Wed Jul 13, 2011 2:12 pm
by tosswang
hi,jason:
my sample code snippet is:
Code: Select all
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggerRepository;
import org.docx4j.fonts.IdentityPlusMapper;
import org.docx4j.fonts.Mapper;
import org.docx4j.fonts.PhysicalFont;
import org.docx4j.fonts.PhysicalFonts;
import org.docx4j.openpackaging.io.LoadFromZipNG;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;

public class CreatPdf1
{
   public static byte[] parseHistoryToPDF(InputStream in) throws Exception
   {
      Logger log = Logger.getLogger("org/docx4j/convert/out/pdf/viaXSLFO/");
      LoggerRepository repository = log.getLoggerRepository();
      repository.setThreshold(Level.OFF);
      try
      {
         WordprocessingMLPackage wordMLPackage;
         Mapper fontMapper = new IdentityPlusMapper();
         
         LoadFromZipNG z= new LoadFromZipNG();         
         wordMLPackage =(WordprocessingMLPackage)z.get(in);         
         fontMapper=setPdfFont(fontMapper);
                  
         wordMLPackage.setFontMapper(fontMapper);         
         org.docx4j.convert.out.pdf.PdfConversion c = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(wordMLPackage);
               
         ByteArrayOutputStream fos=new ByteArrayOutputStream();
                        
         c.output(fos);
         
         fos.flush();
         
         byte[] reval=fos.toByteArray();
         
         fos.close();
         
         return reval;
         
      }
      catch (Exception e)
      {
         
         // TODO Auto-generated catch block
         
         e.printStackTrace();
         return  null;
         
      }
      
   }
    public static Mapper setPdfFont(Mapper fontMapper)
   {
      /**这两句的意思是,第一句从系统中 获得一个系统字体然后,
       * 第二句,用这个字体,替换word中的字体**/
      PhysicalFont font = PhysicalFonts.getPhysicalFonts().get("SimSun");               
      fontMapper.getFontMappings().put("宋体", font);
      fontMapper.getFontMappings().put("方正仿宋简体", font);   
      
      return fontMapper;
   }
   
    public static void main(String[] str)throws Exception
    {
       File file=new File("c:\\workspace\\汇率风险分析报告.docx");
       byte[] result=parseHistoryToPDF(new FileInputStream(file));
       System.out.println(result.length);
    }
}



the error information is under linux:
Code: Select all
org.docx4j.openpackaging.exceptions.Docx4JException: FOP issues
   at org.docx4j.convert.out.pdf.viaXSLFO.Conversion.output(Conversion.java:357)   
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
   at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
   at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
   at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
   at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
   at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:99)
   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:60)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:57)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
   at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
   at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
   at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
   at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
   at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
   at com.richfit.bi.domain.support.ThreadLocalRequestFilter.doFilter(ThreadLocalRequestFilter.java:26)
   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
   at com.richfit.bi.domain.support.ThreadLocalRequestFilter.doFilter(ThreadLocalRequestFilter.java:26)
   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
   at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
   at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
   at weblogic.security.service.SecurityManager.runAs(Unknown Source)
   at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
   at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
   at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
   at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
   at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.lang.NullPointerException
   at org.docx4j.XmlUtils.transform(XmlUtils.java:763)
   at org.docx4j.XmlUtils.transform(XmlUtils.java:723)
   at org.docx4j.convert.out.pdf.viaXSLFO.Conversion.output(Conversion.java:353)

the attchment is example docx

thanks in advance!

Re: docx to pdf conversion problem:Fop issue

PostPosted: Wed Jul 13, 2011 6:17 pm
by tosswang
hi,jason:
i know the reason of the issue occur,when i convert docx to pdf ,some jar is in conflict with the jar of weblogic10.3.
our web server is weblogic10.3,below are conflict jar:

xalan-2.7.0.jar
xercesImpl-2.7.1.jar
xml-apis-1.3.04.jar

thank you again

tosswang

Re: fop weblogic jar conflict

PostPosted: Thu Jul 14, 2011 12:44 am
by tinne
Weblogic server libraries (and their dependencies) are always "a bit" outdated. Try to make out the versions that come with WLS and remove those described as docx4j dependencies. When building with maven, you can add the weblogic jars as "provided" dependencies and explicitly exclude the docx4j dependencies for your client. Using ant, you need to provide a custom build path modelling this (and most probably use the ant version that comes with your WLS in bea\modules\...).

If compiling or running does not work, try to make out the concrete versions of the dependencies replaced and come back with that list.

Re: fop weblogic jar conflict

PostPosted: Tue Apr 15, 2014 2:45 am
by Jarey
I think i got the same problem described. I got conflict jars too in this version of weblogic, and then materialized in a ClassNotFound exception during docx to pdf conversion.

Keep looking for a solution, if i found one i will post on my thread and here.

Kind regards.

Re: fop weblogic jar conflict

PostPosted: Wed Apr 16, 2014 6:49 am
by tinne
Jarey,

check http://stackoverflow.com/questions/1742 ... 8#17442228 for how we targeted the subject.

Best wishes,
Karsten