2016-05-16 82 views

回答

0

也許你投入的dropins捆還沒有被激活。

要檢查它是否是積極的,可以按如下方式開始OSGI控制檯模式WSO2 CEP服務器: 轉到<CEP_HOME>/bin和執行命令(假設你使用Linux):

./wso2server.sh -DosgiConsole 

服務器後已經開始,您將看到OSGI提示。

osgi> 

然後運行類型ss <bundle_name>

例如:

ss org.wso2.carbon.event.output.adapter.custom.websocket 

輸出樣本:

id State  Bundle 
285 RESOLVED  org.wso2.carbon.event.output.adapter.custom.websocket_5.0.12.SNAPSHOT 
  • 請注意,您不必與指定完整的包名稱版本和所有,但指定一個部分名字就足夠了。

它會告訴你束是否是活動的。

如果它不處於活動狀態,您可以使用其ID來診斷您的包。例如。

diag 285 

這會顯示丟失的導入包的列表。

您可以參考[1]和[2]瞭解OSGI控制檯命令。

然後確保使用您的捆綁包文件公開那些。 例如,請參閱pom文件的以下部分。它使用Export-Package元素暴露了某些包。

<build> 
      <plugins> 
      <plugin> 
       <groupId>org.apache.felix</groupId> 
       <artifactId>maven-bundle-plugin</artifactId> 
       <extensions>true</extensions> 
       <configuration> 
        <instructions> 
         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
         <Bundle-Name>${project.artifactId}</Bundle-Name> 
         <Private-Package> 
          org.wso2.carbon.event.output.adapter.websocket.local.internal, 
          org.wso2.carbon.event.output.adapter.websocket.local.internal.* 
         </Private-Package> 
         <Export-Package> 
          !org.wso2.carbon.event.output.adapter.websocket.local.internal, 
          !org.wso2.carbon.event.output.adapter.websocket.local.internal.*, 
          org.wso2.carbon.event.output.adapter.websocket.local.*, 
         </Export-Package> 
         <Import-Package> 
          org.wso2.carbon.event.output.adapter.core.*, 
          javax.xml.namespace; version=0.0.0, 
          *;resolution:=optional, 
         </Import-Package> 
         <DynamicImport-Package>*</DynamicImport-Package> 
        </instructions> 
       </configuration> 
      </plugin> 
      </plugins> 
     </build> 

[3]也可能有一些有用的信息。

參考

[1] http://movingaheadblog.blogspot.com/2014/01/how-to-debug-wso2-carbon-products-using.html

[2] https://isurues.wordpress.com/2009/01/01/useful-equinox-osgi-commands

[3] http://wso2.com/library/articles/getting-started-wso2-carbon/