WSO2 CEP 4.1.0 事件适配器
WSO2 CEP 4.1.0 Event adaptor
我编写了一个自定义事件适配器,并将 jar 放在了 dropping 文件夹中,但是 CLI 不显示自定义日志记录,也没有出现在输出适配器中。
我已经阅读了4.1.0指南但没有成功并尝试阅读源代码:
http://dist.wso2.org/maven2/org/wso2/carbon/org.wso2.carbon.event.input.adaptor.email/1.0.1/
可能是您放入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 状态,您可以使用它的 ID 诊断您的包。例如
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/
我编写了一个自定义事件适配器,并将 jar 放在了 dropping 文件夹中,但是 CLI 不显示自定义日志记录,也没有出现在输出适配器中。
我已经阅读了4.1.0指南但没有成功并尝试阅读源代码:
http://dist.wso2.org/maven2/org/wso2/carbon/org.wso2.carbon.event.input.adaptor.email/1.0.1/
可能是您放入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 状态,您可以使用它的 ID 诊断您的包。例如
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/