You are probably running on a JVM we were not expecting.
This issue has been somewhat resolved in the trunk. The issue is that
the conf/config.properties file is used to construct a list of packages
exported by the JVM you are running on. The 0.8.0 release only knows
about 1.3, 1.4, and 1.5...are you running on 1.6?
In 0.8.0 what would end up happening in the case where it didn't
recognize the JRE version, it would end up creating an invalid export
package string with a dangling comma. See your error:
org.osgi.framework; version
=1.3.0, org.osgi.service.packageadmin; version=1.2.0,
org.osgi.service.startleve
l; version=1.0.0, org.osgi.service.url; version=1.0.0,
Notice the dangling comma at the end?
I have attached a config.properties file that fixes the dangling comma
issue and adds support for 1.6...see if that works.
-> richard
Brian Bonner wrote:
I'm new to felix. I pulled it down and was trying to run the example.
I was definitely not expecting the resulting stack trace. Can anyone
tell me where I went wrong?
Thanks.
Brian
C:\felix-0.8.0-incubator>java -jar bin/felix.jar
Welcome to Felix.
=================
Enter profile name: test
ERROR: Error parsing system bundle export statement:
org.osgi.framework; version
=1.3.0, org.osgi.service.packageadmin; version=1.2.0,
org.osgi.service.startleve
l; version=1.0.0, org.osgi.service.url; version=1.0.0,
(java.lang.IllegalArgume
ntException: No paths specified in header: )
java.lang.IllegalArgumentException: No paths specified in header:
at
org.apache.felix.framework.util.ManifestParser.parseStandardHeaderCla
use(ManifestParser.java:794)
at
org.apache.felix.framework.util.ManifestParser.parseStandardHeader(Ma
nifestParser.java:761)
at
org.apache.felix.framework.util.ManifestParser.parseImportExportHeade
r(ManifestParser.java:668)
at
org.apache.felix.framework.SystemBundle.<init>(SystemBundle.java:68)
at org.apache.felix.framework.Felix.start(Felix.java:344)
at org.apache.felix.main.Main.main(Main.java:208)
ERROR: Error starting
file:bundle/org.apache.felix.shell-0.8.0-incubator.jar (or
g.osgi.framework.BundleException: Unresolved package in bundle 1:
org.osgi.servi
ce.startlevel [version=1.0.0])
org.osgi.framework.BundleException: Unresolved package in bundle 1:
org.osgi.ser
vice.startlevel [version=1.0.0]
at
org.apache.felix.framework.Felix._resolveBundle(Felix.java:1362)
at org.apache.felix.framework.Felix._startBundle(Felix.java:1241)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1201)
at
org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:80
7)
at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:256
)
at java.lang.Thread.run(Thread.java:619)
ERROR: Error starting
file:bundle/org.apache.felix.shell.tui-0.8.0-incubator.jar
(org.osgi.framework.BundleException: Unresolved package in bundle 1:
org.osgi.s
ervice.startlevel [version=1.0.0])
org.osgi.framework.BundleException: Unresolved package in bundle 1:
org.osgi.ser
vice.startlevel [version=1.0.0]
at
org.apache.felix.framework.Felix._resolveBundle(Felix.java:1362)
at org.apache.felix.framework.Felix._startBundle(Felix.java:1241)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1201)
at
org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:80
7)
at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:256
)
at java.lang.Thread.run(Thread.java:619)
ERROR: Error starting
file:bundle/org.apache.felix.bundlerepository-0.8.0-incuba
tor.jar (org.osgi.framework.BundleException: Unresolved package in
bundle 3: org
.osgi.framework [version=1.3.0])
org.osgi.framework.BundleException: Unresolved package in bundle 3:
org.osgi.fra
mework [version=1.3.0]
at
org.apache.felix.framework.Felix._resolveBundle(Felix.java:1362)
at org.apache.felix.framework.Felix._startBundle(Felix.java:1241)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1201)
at
org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:80
7)
at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:256
)
at java.lang.Thread.run(Thread.java:619)
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# Framework config properties.
#
org.osgi.framework.system.packages=org.osgi.framework; version=1.3.0, \
org.osgi.service.packageadmin; version=1.2.0, \
org.osgi.service.startlevel; version=1.0.0, \
org.osgi.service.url; version=1.0.0 \
${jre-${java.specification.version}}
#org.osgi.framework.bootdelegation=sun.*,com.sun.*
#felix.cache.profile=foo
felix.auto.start.1= \
file:bundle/org.apache.felix.shell-0.8.0-incubator.jar \
file:bundle/org.apache.felix.shell.tui-0.8.0-incubator.jar \
file:bundle/org.apache.felix.bundlerepository-0.8.0-incubator.jar
felix.startlevel.framework=1
felix.startlevel.bundle=1
#framework.service.urlhandlers=false
#
# Bundle config properties.
#
org.osgi.service.http.port=8080
obr.shell.telnet=on
#obr.repository.url=http://bundles.osgi.org/obr/browse?_xml=1&cmd=repository
#
# Java platform package export properties.
#
jre-1.3=, \
javax.accessibility; \
javax.accessibility.resources; \
javax.naming; \
javax.naming.directory; \
javax.naming.event; \
javax.naming.ldap; \
javax.naming.spi; \
javax.rmi; \
javax.rmi.CORBA; \
javax.sound.midi; \
javax.sound.midi.spi; \
javax.sound.sampled; \
javax.sound.sampled.spi; \
javax.swing; \
javax.swing.border; \
javax.swing.colorchooser; \
javax.swing.event; \
javax.swing.filechooser; \
javax.swing.plaf; \
javax.swing.plaf.basic; \
javax.swing.plaf.basic.resources; \
javax.swing.plaf.metal; \
javax.swing.plaf.metal.resources; \
javax.swing.plaf.multi; \
javax.swing.table; \
javax.swing.text; \
javax.swing.text.html; \
javax.swing.text.html.parser; \
javax.swing.text.rtf; \
javax.swing.tree; \
javax.swing.undo; \
javax.transaction; \
org.omg.CORBA; \
org.omg.CORBA_2_3; \
org.omg.CORBA_2_3.portable; \
org.omg.CORBA.DynAnyPackage; \
org.omg.CORBA.ORBPackage; \
org.omg.CORBA.portable; \
org.omg.CORBA.TypeCodePackage; \
org.omg.CosNaming; \
org.omg.CosNaming.NamingContextPackage; \
org.omg.SendingContext; \
org.omg.stub.java.rmi; \
version="1.3.0"
jre-1.4=, \
javax.accessibility; \
javax.imageio; \
javax.imageio.event; \
javax.imageio.metadata; \
javax.imageio.plugins.jpeg; \
javax.imageio.spi; \
javax.imageio.stream; \
javax.naming; \
javax.naming.directory; \
javax.naming.event; \
javax.naming.ldap; \
javax.naming.spi; \
javax.print; \
javax.print.attribute; \
javax.print.attribute.standard; \
javax.print.event; \
javax.rmi; \
javax.rmi.CORBA; \
javax.security.auth; \
javax.security.auth.callback; \
javax.security.auth.kerberos; \
javax.security.auth.login; \
javax.security.auth.spi; \
javax.security.auth.x500; \
javax.sound.midi; \
javax.sound.midi.spi; \
javax.sound.sampled; \
javax.sound.sampled.spi; \
javax.sql; \
javax.swing; \
javax.swing.border; \
javax.swing.colorchooser; \
javax.swing.event; \
javax.swing.filechooser; \
javax.swing.plaf; \
javax.swing.plaf.basic; \
javax.swing.plaf.metal; \
javax.swing.plaf.multi; \
javax.swing.table; \
javax.swing.text; \
javax.swing.text.html; \
javax.swing.text.html.parser; \
javax.swing.text.rtf; \
javax.swing.tree; \
javax.swing.undo; \
javax.transaction; \
javax.transaction.xa; \
javax.xml.parsers; \
javax.xml.transform; \
javax.xml.transform.dom; \
javax.xml.transform.sax; \
javax.xml.transform.stream; \
org.ietf.jgss; \
org.omg.CORBA; \
org.omg.CORBA_2_3; \
org.omg.CORBA_2_3.portable; \
org.omg.CORBA.DynAnyPackage; \
org.omg.CORBA.ORBPackage; \
org.omg.CORBA.portable; \
org.omg.CORBA.TypeCodePackage; \
org.omg.CosNaming; \
org.omg.CosNaming.NamingContextExtPackage; \
org.omg.CosNaming.NamingContextPackage; \
org.omg.Dynamic; \
org.omg.DynamicAny; \
org.omg.DynamicAny.DynAnyFactoryPackage; \
org.omg.DynamicAny.DynAnyPackage; \
org.omg.IOP; \
org.omg.IOP.CodecFactoryPackage; \
org.omg.IOP.CodecPackage; \
org.omg.Messaging; \
org.omg.PortableInterceptor; \
org.omg.PortableInterceptor.ORBInitInfoPackage; \
org.omg.PortableServer; \
org.omg.PortableServer.CurrentPackage; \
org.omg.PortableServer.POAManagerPackage; \
org.omg.PortableServer.POAPackage; \
org.omg.PortableServer.portable; \
org.omg.PortableServer.ServantLocatorPackage; \
org.omg.SendingContext; \
org.omg.stub.java.rmi; \
org.w3c.dom; \
org.w3c.dom.css; \
org.w3c.dom.events; \
org.w3c.dom.html; \
org.w3c.dom.stylesheets; \
org.w3c.dom.traversal; \
org.w3c.dom.views; \
org.xml.sax; \
org.xml.sax.ext; \
org.xml.sax.helpers; \
version="1.4.0"
jre-1.5=, \
javax.accessibility; \
javax.activity; \
javax.imageio; \
javax.imageio.event; \
javax.imageio.metadata; \
javax.imageio.plugins.bmp; \
javax.imageio.plugins.jpeg; \
javax.imageio.spi; \
javax.imageio.stream; \
javax.management; \
javax.management.loading; \
javax.management.modelmbean; \
javax.management.monitor; \
javax.management.openmbean; \
javax.management.relation; \
javax.management.remote; \
javax.management.remote.rmi; \
javax.management.timer; \
javax.naming; \
javax.naming.directory; \
javax.naming.event; \
javax.naming.ldap; \
javax.naming.spi; \
javax.print; \
javax.print.attribute; \
javax.print.attribute.standard; \
javax.print.event; \
javax.rmi; \
javax.rmi.CORBA; \
javax.rmi.ssl; \
javax.security.auth; \
javax.security.auth.callback; \
javax.security.auth.kerberos; \
javax.security.auth.login; \
javax.security.auth.spi; \
javax.security.auth.x500; \
javax.security.sasl; \
javax.sound.midi; \
javax.sound.midi.spi; \
javax.sound.sampled; \
javax.sound.sampled.spi; \
javax.sql; \
javax.sql.rowset; \
javax.sql.rowset.serial; \
javax.sql.rowset.spi; \
javax.swing; \
javax.swing.border; \
javax.swing.colorchooser; \
javax.swing.event; \
javax.swing.filechooser; \
javax.swing.plaf; \
javax.swing.plaf.basic; \
javax.swing.plaf.metal; \
javax.swing.plaf.multi; \
javax.swing.plaf.synth; \
javax.swing.table; \
javax.swing.text; \
javax.swing.text.html; \
javax.swing.text.html.parser; \
javax.swing.text.rtf; \
javax.swing.tree; \
javax.swing.undo; \
javax.transaction; \
javax.transaction.xa; \
javax.xml; \
javax.xml.datatype; \
javax.xml.namespace; \
javax.xml.parsers; \
javax.xml.transform; \
javax.xml.transform.dom; \
javax.xml.transform.sax; \
javax.xml.transform.stream; \
javax.xml.validation; \
javax.xml.xpath; \
org.ietf.jgss; \
org.omg.CORBA; \
org.omg.CORBA_2_3; \
org.omg.CORBA_2_3.portable; \
org.omg.CORBA.DynAnyPackage; \
org.omg.CORBA.ORBPackage; \
org.omg.CORBA.portable; \
org.omg.CORBA.TypeCodePackage; \
org.omg.CosNaming; \
org.omg.CosNaming.NamingContextExtPackage; \
org.omg.CosNaming.NamingContextPackage; \
org.omg.Dynamic; \
org.omg.DynamicAny; \
org.omg.DynamicAny.DynAnyFactoryPackage; \
org.omg.DynamicAny.DynAnyPackage; \
org.omg.IOP; \
org.omg.IOP.CodecFactoryPackage; \
org.omg.IOP.CodecPackage; \
org.omg.Messaging; \
org.omg.PortableInterceptor; \
org.omg.PortableInterceptor.ORBInitInfoPackage; \
org.omg.PortableServer; \
org.omg.PortableServer.CurrentPackage; \
org.omg.PortableServer.POAManagerPackage; \
org.omg.PortableServer.POAPackage; \
org.omg.PortableServer.portable; \
org.omg.PortableServer.ServantLocatorPackage; \
org.omg.SendingContext; \
org.omg.stub.java.rmi; \
org.omg.stub.javax.management.remote.rmi; \
org.w3c.dom; \
org.w3c.dom.bootstrap; \
org.w3c.dom.css; \
org.w3c.dom.events; \
org.w3c.dom.html; \
org.w3c.dom.ls; \
org.w3c.dom.ranges; \
org.w3c.dom.stylesheets; \
org.w3c.dom.traversal; \
org.w3c.dom.views; \
org.xml.sax; \
org.xml.sax.ext; \
org.xml.sax.helpers; \
version="1.5.0"
jre-1.6=, \
java.applet; \
java.awt; \
java.awt.color; \
java.awt.datatransfer; \
java.awt.dnd; \
java.awt.dnd.peer; \
java.awt.event; \
java.awt.font; \
java.awt.geom; \
java.awt.im; \
java.awt.image; \
java.awt.image.renderable; \
java.awt.im.spi; \
java.awt.peer; \
java.awt.print; \
java.beans; \
java.beans.beancontext; \
java.io; \
java.lang; \
java.lang.annotation; \
java.lang.instrument; \
java.lang.management; \
java.lang.ref; \
java.lang.reflect; \
java.math; \
java.net; \
java.nio; \
java.nio.channels; \
java.nio.channels.spi; \
java.nio.charset; \
java.nio.charset.spi; \
java.rmi; \
java.rmi.activation; \
java.rmi.dgc; \
java.rmi.registry; \
java.rmi.server; \
java.security; \
java.security.acl; \
java.security.cert; \
java.security.interfaces; \
java.security.spec; \
java.sql; \
java.text; \
java.text.spi; \
java.util; \
java.util.concurrent; \
java.util.concurrent.atomic; \
java.util.concurrent.locks; \
java.util.jar; \
java.util.logging; \
java.util.prefs; \
java.util.regex; \
java.util.spi; \
java.util.zip; \
javax.accessibility; \
javax.activation; \
javax.activity; \
javax.annotation; \
javax.annotation.processing; \
javax.imageio; \
javax.imageio.event; \
javax.imageio.metadata; \
javax.imageio.plugins.bmp; \
javax.imageio.plugins.jpeg; \
javax.imageio.spi; \
javax.imageio.stream; \
javax.jws; \
javax.jws.soap; \
javax.lang.model; \
javax.lang.model.element; \
javax.lang.model.type; \
javax.lang.model.util; \
javax.management; \
javax.management.loading; \
javax.management.modelmbean; \
javax.management.monitor; \
javax.management.openmbean; \
javax.management.relation; \
javax.management.remote; \
javax.management.remote.rmi; \
javax.management.timer; \
javax.naming; \
javax.naming.directory; \
javax.naming.event; \
javax.naming.ldap; \
javax.naming.spi; \
javax.print; \
javax.print.attribute; \
javax.print.attribute.standard; \
javax.print.event; \
javax.rmi; \
javax.rmi.CORBA; \
javax.rmi.ssl; \
javax.script; \
javax.security.auth; \
javax.security.auth.callback; \
javax.security.auth.kerberos; \
javax.security.auth.login; \
javax.security.auth.spi; \
javax.security.auth.x500; \
javax.security.sasl; \
javax.smartcardio; \
javax.sound.midi; \
javax.sound.midi.spi; \
javax.sound.sampled; \
javax.sound.sampled.spi; \
javax.sql; \
javax.sql.rowset; \
javax.sql.rowset.serial; \
javax.sql.rowset.spi; \
javax.swing; \
javax.swing.border; \
javax.swing.colorchooser; \
javax.swing.event; \
javax.swing.filechooser; \
javax.swing.plaf; \
javax.swing.plaf.basic; \
javax.swing.plaf.metal; \
javax.swing.plaf.multi; \
javax.swing.plaf.synth; \
javax.swing.table; \
javax.swing.text; \
javax.swing.text.html; \
javax.swing.text.html.parser; \
javax.swing.text.rtf; \
javax.swing.tree; \
javax.swing.undo; \
javax.tools; \
javax.transaction; \
javax.transaction.xa; \
javax.xml; \
javax.xml.bind; \
javax.xml.bind.annotation; \
javax.xml.bind.annotation.adapters; \
javax.xml.bind.attachment; \
javax.xml.bind.helpers; \
javax.xml.bind.util; \
javax.xml.crypto; \
javax.xml.crypto.dom; \
javax.xml.crypto.dsig; \
javax.xml.crypto.dsig.dom; \
javax.xml.crypto.dsig.keyinfo; \
javax.xml.crypto.dsig.spec; \
javax.xml.datatype; \
javax.xml.namespace; \
javax.xml.parsers; \
javax.xml.soap; \
javax.xml.stream; \
javax.xml.stream.events; \
javax.xml.stream.util; \
javax.xml.transform; \
javax.xml.transform.dom; \
javax.xml.transform.sax; \
javax.xml.transform.stax; \
javax.xml.transform.stream; \
javax.xml.validation; \
javax.xml.ws; \
javax.xml.ws.handler; \
javax.xml.ws.handler.soap; \
javax.xml.ws.http; \
javax.xml.ws.soap; \
javax.xml.ws.spi; \
javax.xml.xpath; \
org.ietf.jgss; \
org.jcp.xml.dsig.internal; \
org.jcp.xml.dsig.internal.dom; \
org.omg.CORBA; \
org.omg.CORBA_2_3; \
org.omg.CORBA_2_3.portable; \
org.omg.CORBA.DynAnyPackage; \
org.omg.CORBA.ORBPackage; \
org.omg.CORBA.portable; \
org.omg.CORBA.TypeCodePackage; \
org.omg.CosNaming; \
org.omg.CosNaming.NamingContextExtPackage; \
org.omg.CosNaming.NamingContextPackage; \
org.omg.Dynamic; \
org.omg.DynamicAny; \
org.omg.DynamicAny.DynAnyFactoryPackage; \
org.omg.DynamicAny.DynAnyPackage; \
org.omg.IOP; \
org.omg.IOP.CodecFactoryPackage; \
org.omg.IOP.CodecPackage; \
org.omg.Messaging; \
org.omg.PortableInterceptor; \
org.omg.PortableInterceptor.ORBInitInfoPackage; \
org.omg.PortableServer; \
org.omg.PortableServer.CurrentPackage; \
org.omg.PortableServer.POAManagerPackage; \
org.omg.PortableServer.POAPackage; \
org.omg.PortableServer.portable; \
org.omg.PortableServer.ServantLocatorPackage; \
org.omg.SendingContext; \
org.omg.stub.java.rmi; \
org.omg.stub.javax.management.remote.rmi; \
org.w3c.dom; \
org.w3c.dom.bootstrap; \
org.w3c.dom.css; \
org.w3c.dom.events; \
org.w3c.dom.html; \
org.w3c.dom.ls; \
org.w3c.dom.ranges; \
org.w3c.dom.stylesheets; \
org.w3c.dom.traversal; \
org.w3c.dom.views; \
org.w3c.dom.xpath; \
org.xml.sax; \
org.xml.sax.ext; \
org.xml.sax.helpers; \
version=\"1.6.0\"