我编写了一个自定义事件适配器,我将jar放在了drop文件夹中,但CLI没有显示自定义日志记录,也没有出现在输出适配器中。
我没有成功阅读4.1.0指南,并尝试阅读以下源代码:
http://dist.wso2.org/maven2/org/wso2/carbon/org.wso2.carbon.event.input.adaptor.email/1.0.1/
答案 0 :(得分: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
它将显示捆绑包是否为ACTIVE。
如果它不处于ACTIVE状态,您可以使用其ID诊断捆绑包。 E.g。
diag 285
这将显示缺少导入包的列表。
您可以参考[1]和[2]来了解OSGI控制台命令。
然后确保使用您的bundle pom文件公开那些。 例如,请参阅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/