You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by JCR <jc...@proxymit.net> on 2016/08/24 20:10:00 UTC

Felix cannot resolve classes in jar bundle

Hello,

I've been scratching my head for days now...

I packaged the itext 5 library (to create PDFs) into a bundle by adding a respective manifest, as documented here: 
https://helpx.adobe.com/experience-manager/kb/ConvertAJarIntoOsgiBundle.html

While CRXDE has no problem in resolving the jar's classes and compiles nicely, Sling or better, Felix, is unable to 
resolve the classes, like:

An error occurred at line: 14 in the jsp file: /apps/rome/comp/pdf/html.jsp
Document cannot be resolved to a type
11: //print hello world with itext
12:   response.setContentType("application/pdf");
13:   try {
14: 	  Document doc = new Document();
15: 	  PdfWriter.getInstance(doc, response.getOutputStream());
...

The manifest looks like this:

Manifest-Version: 1.0
Created-By: myself
Bundle-ManifestVersion: 2
Bundle-Name: itext5
Bundle-Description: itext5 jar in an OSGi bundle
Bundle-Version: 1.0.6
Bundle-SymbolicName: com.itextpdf
Bundle-ClassPath: .,iText5.0.4.jar
Export-Package: com.itextpdf
Import-Package: com.itextpdf


The class is in jar:
   com/itextpdf/text/Document.class


The bundle starts and is active. From Felix console:

itext5com.itextpdf
Symbolischer Name	com.itextpdf
Version	1.0.6
Bundle Location	inputstream:itext504-bundle-classes.jar
Letzte Bundle Status �nderung	Wed Aug 24 21:19:06 CEST 2016
Beschreibung	itext5 jar in an OSGi bundle
Start Level	20
Bundle Classpath	.,iText5.0.4.jar
Exportierte Packages	com.itextpdf,version=0.0.0
Importierte Packages	None
Manifest Headers	Bundle-ClassPath: ., iText5.0.4.jar
Bundle-Description: itext5 jar in an OSGi bundle
Bundle-ManifestVersion: 2
Bundle-Name: itext5
Bundle-SymbolicName: com.itextpdf
Bundle-Version: 1.0.6
Created-By: myself
Export-Package: com.itextpdf
Manifest-Version: 1.0


I tried quite a few modifications with the manifest, and also added the bundle via the Felix console directly, but 
absolutely no change, no success.


Any hints?

Thanks,
Juerg

Re: Felix cannot resolve classes in jar bundle

Posted by Konrad Windszus <ko...@gmx.de>.
Hi, this is more a question for the Sling Users Mailing list (if at all), but let me give you some pointers.
Your manifest is not correct because it will only export the package 'com.itextpdf' but not any sub packages (your class is in package  com.itextpdf.text).
Also I would rather use the maven-bundle-plugin for that (http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html#embedding-dependencies <http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html#embedding-dependencies>) which generates most parts of the manifest automatically for you.

Konrad

> On 24 Aug 2016, at 22:10, JCR <jc...@proxymit.net> wrote:
> 
> Hello,
> 
> I've been scratching my head for days now...
> 
> I packaged the itext 5 library (to create PDFs) into a bundle by adding a respective manifest, as documented here: https://helpx.adobe.com/experience-manager/kb/ConvertAJarIntoOsgiBundle.html
> 
> While CRXDE has no problem in resolving the jar's classes and compiles nicely, Sling or better, Felix, is unable to resolve the classes, like:
> 
> An error occurred at line: 14 in the jsp file: /apps/rome/comp/pdf/html.jsp
> Document cannot be resolved to a type
> 11: //print hello world with itext
> 12:   response.setContentType("application/pdf");
> 13:   try {
> 14: 	  Document doc = new Document();
> 15: 	  PdfWriter.getInstance(doc, response.getOutputStream());
> ...
> 
> The manifest looks like this:
> 
> Manifest-Version: 1.0
> Created-By: myself
> Bundle-ManifestVersion: 2
> Bundle-Name: itext5
> Bundle-Description: itext5 jar in an OSGi bundle
> Bundle-Version: 1.0.6
> Bundle-SymbolicName: com.itextpdf
> Bundle-ClassPath: .,iText5.0.4.jar
> Export-Package: com.itextpdf
> Import-Package: com.itextpdf
> 
> 
> The class is in jar:
>  com/itextpdf/text/Document.class
> 
> 
> The bundle starts and is active. From Felix console:
> 
> itext5com.itextpdf
> Symbolischer Name	com.itextpdf
> Version	1.0.6
> Bundle Location	inputstream:itext504-bundle-classes.jar
> Letzte Bundle Status Änderung	Wed Aug 24 21:19:06 CEST 2016
> Beschreibung	itext5 jar in an OSGi bundle
> Start Level	20
> Bundle Classpath	.,iText5.0.4.jar
> Exportierte Packages	com.itextpdf,version=0.0.0
> Importierte Packages	None
> Manifest Headers	Bundle-ClassPath: ., iText5.0.4.jar
> Bundle-Description: itext5 jar in an OSGi bundle
> Bundle-ManifestVersion: 2
> Bundle-Name: itext5
> Bundle-SymbolicName: com.itextpdf
> Bundle-Version: 1.0.6
> Created-By: myself
> Export-Package: com.itextpdf
> Manifest-Version: 1.0
> 
> 
> I tried quite a few modifications with the manifest, and also added the bundle via the Felix console directly, but absolutely no change, no success.
> 
> 
> Any hints?
> 
> Thanks,
> Juerg