Expand my Community achievements bar.

Bundle-SymbolicName header missing, cannot install bundle

Avatar

Level 2

I need to install jdts service for my 6.5 localhost instance and getting this error. I have tried adding necessary dependencies in my project's pom file but it still does not download.

 

Read some similar posts on the forum but could not comprehend the solutions. I am new to aem, can someone please assist ?

HTTP ERROR 500 Server Error

URI: /system/console/bundles
STATUS: 500
MESSAGE: Server Error
SERVLET: org.apache.felix.http.base.internal.dispatch.DispatcherServlet-7bb136de
CAUSED BY: java.io.IOException: Bundle-SymbolicName header missing, cannot install bundle

Caused by:

java.io.IOException: Bundle-SymbolicName header missing, cannot install bundle
	at org.apache.felix.webconsole.internal.core.BundlesServlet.installBundle(BundlesServlet.java:1644)
	at org.apache.felix.webconsole.internal.core.BundlesServlet.installBundles(BundlesServlet.java:1593)
	at org.apache.felix.webconsole.internal.core.BundlesServlet.doPost(BundlesServlet.java:336)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:611)
	at org.apache.felix.webconsole.internal.servlet.OsgiManager$3.run(OsgiManager.java:513)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:508)
	at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:123)
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:86)
	at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308)
	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142)
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81)
	at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131)
	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142)
	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81)
	at org.apache.felix.http.base.internal.dispatch.Dispatcher$1.doFilter(Dispatcher.java:146)
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1002)
	at com.adobe.granite.auth.oauth.impl.OAuthCallbackFilter.doFilter(OAuthCallbackFilter.java:69)
	at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:137)
	at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008)
	at com.adobe.granite.auth.ims.impl.IMSClusterExchangeTokenPreprocessor.doFilter(IMSClusterExchangeTokenPreprocessor.java:281)
	at org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:137)

 

 

read a couple of issues similar to mine but could not comprehend it. I am new to authoring and working on aem. Can someone please assist ?

4 Replies

Avatar

Community Advisor

I could be wrong but it looks like you are trying to install a JAR file in AEM Felix Console. You can only install bundles which is a Jar file containing manifest file which contains all necessary information for OSGi framework. 

There are 2 ways you can add external dependency/jar as a bundle in AEM :

1. Using Maven BND plugin to add external dependencies as part of your project bundle using embed.
https://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html

https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/embed-third-party-dependen...

 

2. Create a bundle from a jar using eclipse or any other tool that supports
https://stackoverflow.com/questions/9819090/how-to-convert-jar-to-osgi-bundle-using-eclipse-and-bndt...

 

Avatar

Level 2

Hi Sachin,

 

Thanks for the reply

 

So I found a way to convert jar to OSGI bundles. 

 

I found a video on youtube that shows how to run a 'jar' command in cmd to convert a jar file to OSGi bundle provided the manifest file is given.

 

1. I found the manifest file details with the existing services on publishers. Copied and created a new text file, ran this command below with the jar file to add the manifest.

jar cvfm jtds-1.3.1.jar Manifest.txt jtds-1.3.1.jar

 

I changed the name of the file so it matches the name as mentioned for symbolic name in the manifest details found earlier.

 

There were 2 bundles that were needed an install on the localhost instance, netforgedrive and jtds which both came from jtds jar file. I converted them into OSGI bundles and installed it but facing another error.


Some declarative components under day commons are not able to start. Showing as status failure.

 

kashyap691_0-1658824576669.png

 

Upon clicking them, this exception shows in the details - 

java.lang.IllegalArgumentException: Cannot initialize driver 'net.sourceforge.jtds.jdbc.Driver' at

 

kashyap691_1-1658824687005.png

 

Avatar

Level 7

Are you sure that your bundle has been built correctly? You should validate the MANIFEST.MF file contains a proper SymbolicName header.

You can also refer below link to define the symbolic name of OSGI bundle.

http://wiki.osgi.org/wiki/Bundle-SymbolicName

 

Also, you should check for - in pom.xml's packaging tag use bundle instead of jar.

replace  tag <packaging>jar</packaging> with  <packaging>bundle</packaging>