error occurred in production only, com.documents4j.throwables.ConversionInputException: The input file seems to be corrupt

54 views Asked by At

I am converting word to pdf, there is no error in my eclipse but when i deploy my java application into tomcat, i am facing this

code

private static File convertWordToPdf(MultipartFile wordFile, String originalFilename) {
        infoLogger.info("ResponseUtility : convertWordToPdf Start : ");
        File pdfFile = null;
        try {
            pdfFile = File.createTempFile(originalFilename, ".pdf");
            IConverter converter = LocalConverter.builder().build();
            converter.convert(wordFile.getInputStream()).as(DocumentType.MS_WORD).to(pdfFile).as(DocumentType.PDF)
                    .execute();
            if (converter != null) {
                converter.shutDown();
                infoLogger.info("ResponseUtility : Converter shut down successfully");
            }
            infoLogger.info("ResponseUtility : convertWordToPdf End");
        } catch (IOException e) {
            errorLogger.error("ResponseUtility : Error At convertWordToPdf : multiple arguments : " + e.toString());
        }
        return pdfFile;
    }

error

com.documents4j.throwables.ConverterAccessException: The converter seems to be shut down at com.documents4j.util.Reaction$ConverterAccessExceptionBuilder.make(Reaction.java:117) at com.documents4j.util.Reaction$ExceptionalReaction.apply(Reaction.java:75) at com.documents4j.conversion.ExternalConverterScriptResult.resolve(ExternalConverterScriptResult.java:70) at com.documents4j.conversion.ProcessFutureWrapper.evaluateExitValue(ProcessFutureWrapper.java:48) at com.documents4j.conversion.ProcessFutureWrapper.get(ProcessFutureWrapper.java:36) at com.documents4j.conversion.ProcessFutureWrapper.get(ProcessFutureWrapper.java:11) at com.documents4j.job.AbstractFutureWrappingPriorityFuture.run(AbstractFutureWrappingPriorityFuture.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)

note

tomcat is running as administartor

versions

Tomcat - 10.0.27 Amazon Corretto - jdk - jdk17.0.10_7 MS OFFICE - 2010 OS - Windows 10 Pro

dependencies

` <!-- Apache documents4j -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>
        <dependency>
            <groupId>org.zeroturnaround</groupId>
            <artifactId>zt-exec</artifactId>
            <version>1.10</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-api</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-local</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice-word</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice-excel</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-client</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-server</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-client-standalone</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-server-standalone</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-util-standalone</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-util-all</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice</artifactId>
            <version>1.1.3</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-util-conversion</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-util-ws</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-util-transformer-process</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-parent</artifactId>
            <version>1.1.3</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.documents4j</groupId>
            <artifactId>documents4j-transformer-msoffice</artifactId>
            <version>1.1.3</version>
            <type>pom</type>
        </dependency>`

i made this changes in word_convert.vbs as well, Set wordDocument = wordApplication.Documents.Open(inputFile, False, , False) but it did not work for me.

in my local system, everything works fine, please provide some solution,

0

There are 0 answers