编辑:用最新信息更新了这个问题...
我遇到了依赖功能背靠背"功能:卸载"命令的问题.OSGi回应"状态正在改变......",但通过接受其他请求,我们遇到了问题.
奇怪的是,这会导致功能卸载成功,但捆绑卸载失败.我们通过尝试适当地订购卸载请求并在步骤之间添加延迟来解决这个问题,但我希望有一个更强大的解决方案.
正如所建议的那样,我也尝试在步骤之间添加"osgi:refresh"......同样的行为.是否有另一种方法可以检测"刷新包"是否仍在运行以延迟后续请求等?
这是详细信息......
karaf @ root>功能:卸载PolicyUtil
karaf @ root>功能:卸载Policy1
karaf @ root>功能:卸载策略2
通过线程"刷新包"对包"file:/policy2.jar"进行状态更改.
karaf @根>特点:卸载策略3
在捆绑"文件:/policy3.jar"进步状态改变的线程"刷新包".
karaf @ root>功能:卸载Policy4
karaf @ root>功能:卸载Enabler1
通过线程"刷新包"对包"file:/enabler1.jar"进行状态更改.
karaf @ root> features:卸载Enabler2
状态正在通过线程"刷新包"对包"file:/enabler2.jar"进行状态更改.
之后...我们最终安装了未安装的功能(正确),但仍安装了一些软件包(不正确)
OSGi的:列表
[277] [已安装] [] [] [60] Policy2
[278] [已安装] [] [] [60] Policy3
[280] [已安装] [] [] [60] Enabler1
[281] [已安装] [] [] [60]启动器2
特点:列表
[uninstalled] [1.0] PolicyUtil repo-0
[uninstalled] [1.0] Policy1 repo-0
[uninstalled] [1.0] Policy2 repo-0
[uninstalled] [1.0] Policy3 repo-0
[uninstalled] [1.0] Enabler1 repo-0
[uninstalled] [1.0] Enabler2 repo-0
我编写了生成excel的模块,并在Servicemix下部署了它.在Windows环境中一切都很好,但在Linux Servicemix下意外崩溃后跟随调用:
for (short i=0;i<=3;i++) {
log.trace("AutoSize column {}", i);
worksheet.autoSizeColumn(i);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用POI版本4.2-FINAL,FuseESB 4.2,Java 5.0.但是,没有hs_err*.pid文件.Servicemix日志在第一次autoSizeColumn调用结束.
有没有人遇到过这种行为并且知道它是如何引起的以及如何绕过这个?
我已将ServiceMix升级到Fuse ESB 4.4编译.但是,我得到了日志系统的错误,我找不到如何处理.
错误消息是:
Warning: encoding "UTF-8" not supported, using UTF-8
Run Code Online (Sandbox Code Playgroud)
不使用编码UTF-8.文件以Windows-1250编码进行编码(该组中的字符已正确转换,其他字符当然不可用).
我在StackOverflow上找到了关于类似问题的讨论,其中发现了Xerces解析器的问题,但是没有线索,如何在这种特殊情况下解决它.有没有人成功处理过它?
我在静态领域遇到了问题.我认为根本原因必须是静态字段的范围.
该项目基于Apache servicemix,由许多子项目组成.
在子项目"A"中,我在"注册"类中定义了一个静态列表字段"reg",并使用一些静态方法来操作该字段,如"add"和"getAll".部署子项目A后,项目"A"的名称将添加到静态列表中以进行注册.
问题是当涉及子项目'B'时,当子项目'B'被部署时,我希望它的名称将被添加到完全相同的静态列表中以进行注册.但是当我调用静态方法getAll或添加'注册'时,子项目B中的'reg'似乎与子项目A中的'reg'完全不同.因此注册功能不起作用.
所以我想问一个基本问题,静态字段的范围是什么?它在JVM或其他一些东西中有效吗?
谢谢你的帮助
我开始使用ServiceMix和Camel,我经历了很多例子.
似乎OSGi的示例可以通过热部署或通过控制台部署在ServiceMix中,但我不知道如何部署不是OSGI的项目.可以吗?
例如,我正在查看Camel 2.10.0中名为camel-example-cxf-proxy的示例项目.我做了一些改动,现在我想在ServiceMix中加载它.如果我复制/粘贴到部署目录,它会被加载但是当我尝试通过osgi运行它时:start id失败.
但是,如果我作为一个独立的IDE运行它,它运行得很好,我可以通过SoapUI发送和接收请求.
当我完成这些示例时,我想在eclipse中创建自己的项目,并在IDE和ServiceMix中进行测试.我还不太了解OSGi的优势.所以我不太习惯在我的项目中使用OSGi.
我的主要问题是:我可以在servicemix中部署非OSGi非JBI兼容项目吗?像camel-example-cxf-proxy之类的东西.如果是,我该怎么办?如果不是,我怎么能OSGi-fy camel-example-cxf-proxy?
谢谢 :)
我目前正在部署一个我希望基于Camel和ActiveMQ的应用程序.因此,我决定选择ServiceMix或Fuse,因为它们包含了我需要的所有东西,OSGi的东西增加了更多的价值.该应用程序最终将在商业上运行.
我不确定应该去哪个:ServiceMix或Fuse.我倾向于使用JBoss Fuse,因为似乎有更多可用的文档,而且似乎更频繁地更新(更新的ActiveMQ内部等).但仍有一些问题:
谢谢你的帮助
我正在使用Fuse ESB(ServiceMix),我一直在搜索,希望在运行命令'osgi:list'时找到对各种标题的更好解释.即我想要理解的两个列是'Blueprint'和'Spring'.我猜测他们的各种状态是指什么,但随后出现的其他情况让我对此提出质疑.
如果有人可以提供一些解释,或者更好,请指出一些解释各个列及其潜在价值的文档,这将是最有帮助的.
我正在尝试使用fuse esb + apache camel + seda/activemq公开一个Web服务,我正面临一个将状态消息撤回到Web服务调用的问题.
这是我简单的骆驼路线:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://camel.apache.org/schema/cxf"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd">
<cxf:cxfEndpoint id="msgInEndpoint" address="http://localhost:9000/msgin/"
serviceClass="com.test.jaxws.MsgInEndpoint">
</cxf:cxfEndpoint>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route id="control">
<from uri="cxf:bean:msgInEndpoint" />
<to uri="log:incomingMsgIn" />
<to uri="seda:OpCon.MSGIN" />
<transform>
<constant>OK</constant>
</transform>
</route>
</camelContext>
</beans>
Run Code Online (Sandbox Code Playgroud)
当我使用soapUI执行Web服务请求时,在发生超时问题时:
Exhausted after delivery attempt: 1 caught: org.apache.camel.ExchangeTimedOutException: The OUT message was not received within: 30000 millis.
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪原因:
Caused by: org.apache.camel.ExchangeTimedOutException: The OUT message was not received within: 30000 millis. Exchange[Message: $CONSOLE:DISPLAY,test]
at org.apache.camel.component.seda.SedaProducer.process(SedaProducer.java:112)[89:org.apache.camel.camel-core:2.8.0.fuse-02-05]
at …Run Code Online (Sandbox Code Playgroud) 下面是我的简单文件组件消费者到 ftp 生产者组件的路线。
from("file://C://fileFolder")
.to("ftp://ftp01.test.com/myfolder/?username=user1234&password=pass1234&delay=5s&ignoreFileNotFoundOrPermissionError=true");
Run Code Online (Sandbox Code Playgroud)
当我粘贴一个简单的文本文件时,出现以下异常:“写入失败”。
2016-01-15 10:55:37,663 | WARN | C://fileFolder// | RemoteFileProducer | 117 - org.apache.camel.camel-core - 2.14.1 | Writing file failed with: Error writing file [KURUMDANBANKAYA/F2090281225.txt]
2016-01-15 10:55:37,712 | INFO | C://fileFolder// | Tracer | 117 - org.apache.camel.camel-core - 2.14.1 | ID-ESB01-55798-1452524440559-1-46 >>> (route21) ftp://ftp01.test.com.tr/KURUMDANBANKAYA/?delay=5s&ignoreFileNotFoundOrPermissionError=true&password=xxxxxx&username=garhdisigorta --> OnException[GenericFileOperationFailedException] <<< Pattern:InOnly, Headers:{CamelFileLastModified=1452848134261, CamelFileRelativePath=F2090281225.txt, CamelFileName=F2090281225.txt, CamelFileLength=486, CamelFileNameConsumed=F2090281225.txt, CamelFileNameOnly=F2090281225.txt, CamelFileAbsolutePath=C:\\fileFolder\F2090281225.txt, CamelFilePath=C:\\fileFolder\F2090281225.txt, CamelFileAbsolute=true, CamelFileParent=C:\\fileFolder}, BodyType:org.apache.camel.component.file.GenericFile, Body:[Body is file based: GenericFile[C:\\fileFolder\F2090281225.txt]]
2016-01-15 10:55:37,712 | INFO | C://fileFolder// | Tracer | 117 …Run Code Online (Sandbox Code Playgroud) 我的骆驼路线如下(示例)
from (activemq:xyz) --- 从 QUEUE 接收消息
to(smpp:abc) --- 提交消息至 SMSC
to(cxf:hij) --- 基于 SMSC 响应成功调用 Web 服务
我面临的问题如下
我从队列中收到的交换属性/标头很少,但在收到 SMPP 的响应后,我发送的交换标头/属性被清除,无法用于调用 Web 服务。我该怎么做才能保持这些值不变,直到到达路线终点。我无法控制 SMSC 实施,也无法更改 SMSC 响应。我正在使用 SPRING dsl
java ×5
osgi ×4
apache-camel ×3
fuseesb ×2
apache ×1
apache-felix ×1
apache-karaf ×1
apache-poi ×1
camel-ftp ×1
crash ×1
encoding ×1
ftp ×1
fuse ×1
jbossfuse ×1
linux ×1
spring ×1
spring-dm ×1
utf-8 ×1