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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to