2012-12-05 6 views
2

이상한, 재현 할 수없는 동작이 발생합니다.maven-pax-provision + equinox : java.lang.Long을 java.lang.String으로 캐스팅 할 수 없습니다.

maven-bundle-plugin과 maven-pax-plugin을 사용하여 Apache Felix와 Eclipse Equinox에서 OSGi 응용 프로그램을 개발하고 있습니다.

오늘부터 번들을 시작하거나 중지하려고 할 때 다음 오류가 발생합니다.

파운드 잘

출력 (발췌) 작동 :

0|Active  | 0|OSGi System Bundle (3.8.1.v20120830-144521) 
1|Active  | 1|Console plug-in (1.0.0.v20120522-1841) 
2|Active  | 1|Apache Felix Gogo Command (0.12.0) 
3|Active  | 1|Apache Felix Gogo Runtime (0.10.0) 
4|Active  | 1|Apache Felix Gogo Shell (0.10.0) 
5|Active  | 5|OSGi R4 Core Bundle (4.1.0) 
6|Active  | 5|slf4j-api (1.6.6) 
7|Active  | 5|Logback Core Module (1.0.7) 
8|Active  | 5|Logback Classic Module (1.0.7) 

을하지만 난 예를 들어 정지 6을하려고 할 때 다음과 같은 예외가 얻을 :

g! stop 6 
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String 
at org.eclipse.equinox.console.commands.EquinoxCommandsConverter.convert(EquinoxCommandsConverter.java:61) 
at org.apache.felix.gogo.runtime.CommandProcessorImpl.convert(CommandProcessorImpl.java:254) 
at org.apache.felix.gogo.runtime.CommandSessionImpl.convert(CommandSessionImpl.java:374) 
at org.apache.felix.gogo.runtime.Reflective.coerce(Reflective.java:389) 
at org.apache.felix.gogo.runtime.Reflective.coerce(Reflective.java:310) 
at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:110) 
at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) 
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477) 
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403) 
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) 
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) 
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) 
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) 
at org.apache.felix.gogo.shell.Console.run(Console.java:62) 
at org.apache.felix.gogo.shell.Shell.console(Shell.java:203) 
at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137) 
at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82) 
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477) 
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403) 
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) 
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) 
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) 
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) 
at org.apache.felix.gogo.shell.Activator.run(Activator.java:75) 
at java.lang.Thread.run(Thread.java:722) 

이 모든 번들 으로 발생을 Felix에서 모든 것이 잘 작동합니다.

어떤 아이디어?

답변

3

춘분 명령 번들 내에 오류가 있습니다. 형식을 올바르게 변환 할 수 없습니다. gogo 런타임은 printStackTrace를 인쇄하고 felix 명령을 사용하여 명령을 올바르게 실행합니다.

+0

정보 주셔서 감사합니다. 해결 방법이 있습니까? – hueck

+1

춘분 명령 번들을 중지하려고합니다. –