2017-01-08 19 views
1

OSGi (bndtools/eclipse)에서 vertex를 실행하고 기본 Netty에서이 오류 메시지를 가져 오려고합니다.bndtools/eclipse에서 실행할 때 OSGi Netty/Vertx 오류가 발생했습니다.

standalone 모드 (maven)에서 bndtools를 사용하여 vertx 3.3.3 을 사용하므로 표준 bndtools (cnf) 템플릿이 아닌 maven을 사용하여 모든 종속성을 가져옵니다. 표준 bndtools에서

```

@Override 
public void start(BundleContext bc) throws Exception { 
    Vertx vertx = Vertx.vertx(); 

```

: 내 번들 활성화에

17:00:05.935 [main] DEBUG io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework 17:00:05.938 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple 17:00:05.939 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.maxRecords: 4 17:00:05.971 [main] DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 8 17:00:05.993 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available 17:00:05.994 [main] DEBUG io.netty.util.internal.PlatformDependent - Platform: Windows 17:00:05.994 [main] DEBUG io.netty.util.internal.PlatformDependent - Java version: 8 17:00:05.994 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noUnsafe: false 17:00:05.995 [main] DEBUG io.netty.util.internal.PlatformDependent - maxDirectMemory: 3776970752 bytes (maybe) ! Failed to start bundle mybundle.vertx-2.0.0, exception activator error Could not initialize class io.netty.util.internal.PlatformDependent0 from: io.netty.util.internal.PlatformDependent:<clinit>#101

나는 정적 방법을 사용하여 새 vertx을 만들려고 템플릿 (없음 메이븐)이 잘 작동합니다. 동일한 프로젝트에서 두 모드를 혼합 할 수 있는지 확신 할 수 없으며 나는 maven 형식을 고집하는 것을 선호합니다.

편집

은 내가 Vert.x &은 OSGi와 데 문제를 보여주기 위해 예 안녕하세요 주요 Paremus 프로젝트에서 복제이 샘플 프로젝트를 생성 https://github.com/gadieichhorn/hello-examples/tree/hello-1.13.x

편집 2

Vertx 초기화를 서비스 (번들 액티베이터가 아님)로 옮겼습니다. 이제 더 자세한 오류가 발생합니다.

ERROR: helloworld-web (6): [com.example.hello.web.VertxRegistrationService(0)] The start method has thrown an exception 
java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.PlatformDependent0 
    at io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:101) 
    at io.netty.util.ConstantPool.<init>(ConstantPool.java:32) 
    at io.netty.util.Signal$1.<init>(Signal.java:27) 
    at io.netty.util.Signal.<clinit>(Signal.java:27) 
    at io.netty.util.concurrent.DefaultPromise.<clinit>(DefaultPromise.java:42) 
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:36) 
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58) 
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:47) 
    at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:58) 
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:77) 
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:72) 
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:59) 
    at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:133) 
    at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:122) 
    at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:118) 
    at io.vertx.core.impl.VertxFactoryImpl.vertx(VertxFactoryImpl.java:34) 
    at io.vertx.core.Vertx.vertx(Vertx.java:80) 
    at com.example.hello.web.VertxRegistrationService.lambda$0(VertxRegistrationService.java:26) 
    at com.example.hello.web.TcclSwitch.executeWithTCCLSwitch(TcclSwitch.java:11) 
    at com.example.hello.web.VertxRegistrationService.start(VertxRegistrationService.java:26) 
    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.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:222) 
    at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37) 
    at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:615) 
    at org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:499) 
    at org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:295) 
    at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:302) 
    at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:113) 
    at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:866) 
    at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:833) 
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:724) 
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:399) 
    at org.apache.felix.scr.impl.config.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:676) 
    at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339) 
    at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:360) 
    at org.apache.felix.scr.impl.Activator.access$000(Activator.java:53) 
    at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:260) 
    at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259) 
    at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232) 
    at org.apache.felix.utils.extender.AbstractExtender.addingBundle(AbstractExtender.java:192) 
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469) 
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415) 
    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) 
    at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) 
    at org.osgi.util.tracker.BundleTracker.open(BundleTracker.java:156) 
    at org.apache.felix.utils.extender.AbstractExtender.startTracking(AbstractExtender.java:150) 
    at org.apache.felix.utils.extender.AbstractExtender.doStart(AbstractExtender.java:142) 
    at org.apache.felix.scr.impl.Activator.doStart(Activator.java:170) 
    at org.apache.felix.utils.extender.AbstractExtender.start(AbstractExtender.java:114) 
    at org.apache.felix.scr.impl.Activator.restart(Activator.java:140) 
    at org.apache.felix.scr.impl.config.ScrConfiguration.configure(ScrConfiguration.java:215) 
    at org.apache.felix.scr.impl.config.ScrConfiguration.start(ScrConfiguration.java:136) 
    at org.apache.felix.scr.impl.Activator.start(Activator.java:110) 
    at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697) 
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226) 
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2144) 
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) 
    at aQute.launcher.Launcher.update(Launcher.java:483) 
    at aQute.launcher.Launcher.activate(Launcher.java:382) 
    at aQute.launcher.Launcher.run(Launcher.java:276) 
    at aQute.launcher.Launcher.main(Launcher.java:133) 

어떤 도움이

+0

m2nd 플러그인이 활성화 된 bndtools 3.4.0.DEV – Gadi

+0

더 많은 오류 메시지가있는 것 같습니다. 그것은 흥미 진진한 것처럼 멈 춥니 다. –

+0

@NeilBartlett 이것이 콘솔에있는 모든 것입니다. – Gadi

답변

1

그것은이다 감사 "PlatformDependent0"수입 "sun.misc"때문이다.

당신은 "org.osgi.framework.system.packages.extra=sun.misc"

EDIT 1을 설정하여이 문제를 해결 할 수 있습니다

내가 OSGi 프레임 워크 (아파치 펠릭스)이 방법을 시작 :

Map<String, String> configProperties = Main.loadConfigProperties(); 
Main.copySystemProperties(configProperties); 
configProperties.put("org.osgi.framework.system.packages.extra","sun.misc"); 
Framework fw = new Felix(configProperties); 
fw.init(); 
AutoProcessor.process(configProperties, fw.getBundleContext()); 

하지만 난 당신이 직접이 설정을 넣을 수 있습니다 생각 "felix.config.properties" 파일에 있습니다.

sun.misc은 개인 API이므로 문제가 발생합니다. 따라서 패키지를 Main Bundle에서 제공하는 추가 패키지로 명시 적으로 추가해야합니다. 공용 API (java.lang, java.util ...)에 대해 암시 적으로 수행됩니다.

+0

감사합니다 @ alex29260, 좀 더 구체적으로 기재 할 수 있습니까? 당신은 bnd 파일에서 의미합니까? 전체 예제를 제공 할 수 있습니까? 감사. – Gadi

+0

@Gadi 나는 bnb를 사용하지 않는다. 나는 나의 대답을 업데이트했다. 희망이 도움이된다. – alex29260