HI,
This is not working in fuse 4.0.
That line is added by mistake.
And also the surprising thing is that the code throws exception at line
number 4.
1 if(object instanceof IEndPoint) {
2 tempEndPoint = (IEndPoint)object;
3 tempEndPoint.getName();
4 }
If tempEndPoint is not an instance of IEndPoint, then how it went inside the
if condition.
With Regards
Harbeer Kadian
Harbeer Kadian wrote:
>
> Hi,
>
> I created a osgi bundle with following interface.
> public interface IEndPoint
> {
> public abstract String getName();
> }
>
> I created another osgi bundle with following class
>
> public class TeamCenterEndPointImpl implements IEndPoint
> {
> public String getName() {
> return "teamcenter";
> }
> }
>
> I exposed this class as an OSGI service using following configuration
>
> <bean id="TeamCenterEndPoint"
> class="com.altair.hwe.connect.teamcenter.internal.TeamCenterEndPointImpl"/>
>
> <osgi:service ref="TeamCenterEndPoint"
> interface="com.altair.hwe.connect.endpoint.api.IEndPoint" />
>
> I created one more OSGI bundle with following class which wants to use the
> service exposes by previous bundle.
> public class PlatformManager implements OsgiServiceLifecycleListener
> {
>
> @Override
> public void bind(Object arg0, Map arg1) throws Exception
> {
> registerService(arg0);
>
> }
> @Override
> public void unbind(Object arg0, Map arg1) throws Exception
> {
> unRegisterService(arg0);
>
> }
>
> public void registerService(Object object) {
> System.out.println("register service what the heck ->
> "+object.getClass().getName());
> if(object instanceof IEndPoint) {
> tempEndPoint = (IEndPoint)object;
> }
> tempEndPoint.getName();
>
> }
>
> public void unRegisterService(Object object) {
> System.out.println("unregister service what the heck ->
> "+object.getClass().getName());
> if(object instanceof IEndPoint) {
> tempEndPoint = (IEndPoint)object;
> }
> tempEndPoint.getName();
> }
> }
>
> I gave following configuration in spring-xml files
>
> <osgi:list id="EndPointInstance"
> interface="com.altair.hwe.connect.endpoint.api.IEndPoint">
> <osgi:listener ref="PlatformManager"/>
> </osgi:list>
>
> <bean class="com.altair.hwe.connect.platform.management.PlatformManager"
> id="PlatformManager">
> </bean>
>
> When i ran the program using servicemix.
> I got following exception
> org.springframework.aop.AopInvocationException: AOP configuration seems to
> be invalid: tried calling method [public abstract java.lang.String
> com.altair.hwe.connect.endpoint.api.IEndPoint.getName()] on target
> [com.altair.hwe.connect.teamcenter.internal.teamcenterendpointi...@643b8f];
> nested exception is java.lang.IllegalArgumentException: object is not an
> instance of declaring class
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:315)
> at
> org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
>
> The same way i used in fuse 4.0, and it worked fine.
> I have recently switched to fuse 4.2, and i am getting this problem
>
> With Regards
> Harbeer Kadian
>
--
View this message in context:
http://old.nabble.com/org.springframework.aop.AopInvocationException%3A-AOP-configuration-seems-to-be-invalid-tp27790315p27793844.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.