Something in a zip cannot be a File.  You can use getResourceAsStream
to get the contents of the PDF as an InputStream.

Thanks,
      Aaron

On Thu, Apr 19, 2018 at 9:13 AM, [email protected]
<[email protected]> wrote:
>
> 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]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to