pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shawn.oplinger@gmail.com <shawn.oplin...@gmail.com>
Subject How can a java class load a static pdf file in WebLogic 12c?
Date Thu, 19 Apr 2018 13:13:45 GMT

I need to load a static PDF document, from a java class, running in my J2EE web app on WebLogic
12c; however although my code works in Tomcat, when trying to run it in WebLogic 12c (WebLogic
Server Version: 12.2.1.2.0), I get a server error that the PDF file cannot be found (java.io.FileNotFoundException).

I am using Apache's PDF library, PDFBox version 2.0.8 to load a fillable PDF file that I created,
and then populate that fillable PDF with data.  My code works fine in Tomcat, but fails to
find the pdf file when deployed to WebLogic 12c .

-This appears to be because when an EAR file is deployed to WebLogic 12c, the contents in
the WAR file (all of the application code/files, including the fillable PDF file), remain
archived up in a jar file that WebLogic creates, instead of exploded.

My application utilizes the standard Maven application structure, so as is standard with all
static files, I have put my PDF file in the directory for static resources:
src/main/resources/

In my pom.xml file, I have the following, which builds any pdf files in the /src/main/resources/
folder, into the class path root folder of the WAR file.
         <resource>
                <directory>${basedir}/src/main/resources/</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                    <include>**/*.pdf</include>
                </includes>
            </resource>

When I build the WAR and EAR file, the pdf file does indeed get copied into the root folder
of the application's class files.

The following 3 lines of code, work to load the PDF, when my application's EAR file is deployed
in Tomcat, but do not in WebLogic 12c (WebLogic Server Version: 12.2.1.2.0).

    //this classLoader works for Tomcat, but no in WebLogic 12c
    ClassLoader classLoader = getClass().getClassLoader();
    File file= new File(classLoader.getResource("myPdfFile.pdf").getFile());
    PDDocument document = PDDocument.load(file);

WebLogic 12c produces the following error:

####<Apr 17, 2018, 1:21:50,798 PM EDT> <Error> <HTTP> <HQCIOLT1667133>
<DefaultServer> <[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default
(self-tuning)'> <<WLS Kernel>> <> <3902331f-a214-42fe-a6a1-35b3531e4b56-000000a9>
<1523985710798> <[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name:
DOMAIN] > <BEA-101019> <[ServletContext@1661988196[app:mmhsrp-ear-4.9.0.1-3 module:/mmhsrp
path:null spec-version:3.1]] Servlet failed with an IOException.
java.io.FileNotFoundException: C:\Users\shawn.oplinger\AppData\Roaming\JDeveloper\system12.2.1.2.42.161008.1648\DefaultDomain\servers\DefaultServer\tmp\_WL_user\mmhsrp-ear-4.9.0.1-3\l27tj7\war\WEB-INF\lib\_wl_cls_gen.jar!\myPdfFile.pdf
(The system cannot find the path specified)


-When I browse my file system, to manually try to find the pdf file using the path in the
WebLogic I can get as far as this directory:
C:\Users\shawn.smith\AppData\Roaming\JDeveloper\system12.2.1.2.42.161008.1648\DefaultDomain\servers\DefaultServer\tmp\_WL_user\mmhsrp-ear-4.9.0.1-3\l27tj7\war\WEB-INF\lib\

in that directory is then this file:
_wl_cls_gen.jar

in that jar file is indeed my pdf file:myPdfFile.pdf

-So why can't the classLoader find/load the pdf file?
-does it have anything to do with the pdf file is actually in the archived _wl_cls_gen.jar
file, and not exploded?

-Any suggestions on how my java class can load a static pdf file in WebLogic 12c?

Thanks!
Shawn

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message