Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Equinox » OSGi + Http Service
OSGi + Http Service [message #714736] Thu, 11 August 2011 12:10 Go to next message
StefanK  is currently offline StefanK Friend
Messages: 25
Registered: July 2009
Junior Member
Hi everyone,

i created an simple application to learn how to use the OSGi Service Platform. I´m using the HttpService specified in the OSGi Service Compendium to display a simple html page for the user to input some values.
If i´m running the application within the eclipse platform, everything works just fine. But if i´m trying to start the application through the windows xp command shell, the created Log says the following:

!SESSION 2011-08-11 13:34:45.156 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.7.0
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments: -configuration c:\OSGi\deploy\config -console -clean

!ENTRY SimpleCalculatorHttpFrontEnd 4 0 2011-08-11 13:36:09.593
!MESSAGE [SCR] Error while trying to bind reference Reference[name = simpleCalcualtorHttpService, interface = org.osgi.service.http.HttpService, policy = dynamic, cardinality = 0..n, target = null, bind = setHttpService, unbind = unsetHttpService]
Details:
Problematic reference = Reference[name = simpleCalcualtorHttpService, interface = org.osgi.service.http.HttpService, policy = dynamic, cardinality = 0..n, target = null, bind = setHttpService, unbind = unsetHttpService]
of service component = simplecalculatorHttpFrontEnd
component implementation class = de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter
located in bundle with symbolic name = SimpleCalculatorHttpFrontEnd
bundle location = initial@file:/C:/OSGI/deploy/plugins/SimpleCalculatorHttpFrontEnd_1.0.0.201108110902.jar

!STACK 0
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:360)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:434)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:211)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:337)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:196)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: java.lang.NullPointerException
at de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter.setHttpService(SimpleCalculatorHttpStarter.java:40)
... 16 more
Root exception:
java.lang.NullPointerException
at de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter.setHttpService(SimpleCalculatorHttpStarter.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:360)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:434)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:211)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:337)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:196)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)


I´m using the declarative service mechanism to bind the HttpService Object registered in the registry to the SimpleCalculatorHttpStarter object. The funny thing is, if i´m using a service tracker to track down the HttpService it works just fine..
So is there a problem with declarative services or am i missing something? The OSGI-INF/http.xml file is exported with the .jar file. It basically contains the following xml code:

<?xml version="1.0"?>
<component name="simplecalculatorHttpFrontEnd">
<implementation
class="de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter" />
<reference name="simpleCalculatorHttpReference" interface="org.osgi.service.http.HttpService"
bind="setHttpService" unbind="unsetHttpService" cardinality="0..n"
policy="dynamic"/>
... />
</component>

I´m calling the bundles using the following command:
java -jar -Dorg.osgi.service.http.port=1234 c:\..\deploy\org.eclipse.osgi.jar -configure c:\..\deploy\config -console -clean

The config.ini includes the following bundles:
osgi.bundles=\
file:/C:/OSGI/deploy/plugins/SimpleCalculatorBackEnd_1.0.0.201108110902.jar@:start,\
file:/C:/OSGI/deploy/plugins/SimpleCalculatorEventReceiver_1.0.0.201108110902.jar@:start,\
file:/C:/OSGI/deploy/plugins/SimpleCalculatorHttpFrontEnd_1.0.0.201108110902.jar@:start,\
file:/C:/OSGI/deploy/plugins/SimpleCalculatorLogReceiver_1.0.0.201108110902.jar@:start,\
file:/C:/OSGI/equinox/plugins/javax.servlet_2.5.0.v200910301333.jar@:start,\
file:/C:/OSGI/equinox/plugins/org.eclipse.osgi.services_3.2.100.v20100503.jar@:start,\
file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.cm_1.0.200.v20100520.jar@:start,\
file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.ds_1.2.1.R36x_v20100803.jar@:start,\
file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.event_1.2.0.v20100503.jar@:start,\
file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.log_1.2.100.v20100503.jar@:start,\
file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.util_1.0.200.v20100503.jar@:start,\
file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.http_1.0.400.v20100503.jar@:start
eclipse.ignoreApp=true

I checked the registered services using the "service" command, the httpService is correctly registered. So how come there could be a NullPointerException within the setHttpService method which binds the httpService?

Thanks in advance
StefanK
Re: OSGi + Http Service [message #721593 is a reply to message #714736] Fri, 02 September 2011 08:32 Go to previous message
Ivan Larionov is currently offline Ivan LarionovFriend
Messages: 37
Registered: July 2009
Member
Hi,
Have you tried to debug? I mean, clearly, the following is not a simple
setter method
de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter.setHttpService(SimpleCalculatorHttpStarter.java:40)

if NPE occurs there.

On 11.08.2011 15:10, StefanK wrote:
> Hi everyone,
> i created an simple application to learn how to use the OSGi Service
> Platform. I´m using the HttpService specified in the OSGi Service
> Compendium to display a simple html page for the user to input some
> values. If i´m running the application within the eclipse platform,
> everything works just fine. But if i´m trying to start the application
> through the windows xp command shell, the created Log says the following:
>
> !SESSION 2011-08-11 13:34:45.156
> -----------------------------------------------
> eclipse.buildId=unknown
> java.version=1.7.0
> java.vendor=Oracle Corporation
> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
> Command-line arguments: -configuration c:\OSGi\deploy\config -console
> -clean
>
> !ENTRY SimpleCalculatorHttpFrontEnd 4 0 2011-08-11 13:36:09.593
> !MESSAGE [SCR] Error while trying to bind reference Reference[name =
> simpleCalcualtorHttpService, interface =
> org.osgi.service.http.HttpService, policy = dynamic, cardinality = 0..n,
> target = null, bind = setHttpService, unbind = unsetHttpService]
> Details:
> Problematic reference = Reference[name = simpleCalcualtorHttpService,
> interface = org.osgi.service.http.HttpService, policy = dynamic,
> cardinality = 0..n, target = null, bind = setHttpService, unbind =
> unsetHttpService]
> of service component = simplecalculatorHttpFrontEnd
> component implementation class =
> de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter
> located in bundle with symbolic name = SimpleCalculatorHttpFrontEnd
> bundle location =
> initial@file:/C:/OSGI/deploy/plugins/SimpleCalculatorHttpFrontEnd_1.0.0.201108110902.jar
>
> !STACK 0
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:360)
>
> at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:434)
>
> at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:211)
>
> at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:337)
>
> at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
>
> at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:196)
>
> at
> org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
>
> at
> org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
>
> at
> org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
> at
> org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
>
> at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
> at
> org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
>
> Caused by: java.lang.NullPointerException
> at
> de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter.setHttpService(SimpleCalculatorHttpStarter.java:40)
>
> ... 16 more
> Root exception:
> java.lang.NullPointerException
> at
> de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter.setHttpService(SimpleCalculatorHttpStarter.java:40)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:360)
>
> at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:434)
>
> at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bind(ServiceComponentProp.java:211)
>
> at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:337)
>
> at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
>
> at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:196)
>
> at
> org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
>
> at
> org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
>
> at
> org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
> at
> org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
>
> at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
> at
> org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
>
>
>
> I´m using the declarative service mechanism to bind the HttpService
> Object registered in the registry to the SimpleCalculatorHttpStarter
> object. The funny thing is, if i´m using a service tracker to track down
> the HttpService it works just fine.. So is there a problem with
> declarative services or am i missing something? The OSGI-INF/http.xml
> file is exported with the .jar file. It basically contains the following
> xml code:
>
> <?xml version="1.0"?>
> <component name="simplecalculatorHttpFrontEnd">
> <implementation
> class="de.ict.simplecalculator.activator.SimpleCalculatorHttpStarter" />
> <reference name="simpleCalculatorHttpReference"
> interface="org.osgi.service.http.HttpService"
> bind="setHttpService" unbind="unsetHttpService" cardinality="0..n"
> policy="dynamic"/>
> ... />
> </component>
>
> I´m calling the bundles using the following command:
> java -jar -Dorg.osgi.service.http.port=1234
> c:\..\deploy\org.eclipse.osgi.jar -configure c:\..\deploy\config
> -console -clean
>
> The config.ini includes the following bundles:
> osgi.bundles=\
> file:/C:/OSGI/deploy/plugins/SimpleCalculatorBackEnd_1.0.0.201108110902.jar@:start,\
>
> file:/C:/OSGI/deploy/plugins/SimpleCalculatorEventReceiver_1.0.0.201108110902.jar@:start,\
>
> file:/C:/OSGI/deploy/plugins/SimpleCalculatorHttpFrontEnd_1.0.0.201108110902.jar@:start,\
>
> file:/C:/OSGI/deploy/plugins/SimpleCalculatorLogReceiver_1.0.0.201108110902.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/javax.servlet_2.5.0.v200910301333.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/org.eclipse.osgi.services_3.2.100.v20100503.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.cm_1.0.200.v20100520.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.ds_1.2.1.R36x_v20100803.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.event_1.2.0.v20100503.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.log_1.2.100.v20100503.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.util_1.0.200.v20100503.jar@:start,\
>
> file:/C:/OSGI/equinox/plugins/org.eclipse.equinox.http_1.0.400.v20100503.jar@:start
>
> eclipse.ignoreApp=true
>
> I checked the registered services using the "service" command, the
> httpService is correctly registered. So how come there could be a
> NullPointerException within the setHttpService method which binds the
> httpService?
>
> Thanks in advance
> StefanK
Previous Topic:Bundles From Win to Linux
Next Topic:behaviors of XML editors for manifest and component.xml
Goto Forum:
  


Current Time: Fri Sep 20 16:33:40 GMT 2024

Powered by FUDForum. Page generated in 0.03268 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top