Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

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>