我正在运行 servicemix 4.4.1。我正在尝试使用camel-http4 对网站进行http 调用。无论我尝试调用哪个网站,我都会收到此错误: org.apache.camel.RuntimeCamelException: org.apache.camel.component.http.HttpOperationFailedException: HTTP 操作失败调用http://servicemix.apache.org/downloads /servicemix-4.4.0.html状态代码:405
这是我的代码片段:
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq://events1"/>
<setHeader headerName="CamelHttpMethod">
<constant>POST</constant>
</setHeader>
<to uri="http://servicemix.apache.org/downloads/servicemix-4.4.0.html"/>
<to uri="log:events"/>
</route>
</camelContext>
Run Code Online (Sandbox Code Playgroud)
我尝试过许多网站并尝试使用不同的 http 方法(post 与 get),但我不断收到相同的错误。任何想法?提前致谢。
我有一个要求,我需要每天重新加载我的osgi捆绑4次.重新加载bundle意味着重新创建静态实例Bean,重新加载camel路由,重新创建和注入线程池,数据库连接池..etc(其他spring xml东西).我尝试通过ssh刷新我的包,但我需要捆绑ID,以便可以改变加班.所以,我写了一个Manager Bundle,它通过符号名称获取捆绑包,并每天刷新它们4次
osgi impl : felix
container : apache-servicemix-4.4.1-fuse-03-06
Service Dependency spec : Blueprint
Run Code Online (Sandbox Code Playgroud)
有3个包和一个帮助包.帮助包包含所有使用的公共类和服务接口.这三个捆绑包之间没有代码共享(它们都没有导出任何包).所有这些捆绑包都通过camel vm端点和服务进行交互.我只刷新其他3个捆绑包,帮助捆绑包不提供任何服务.
现在,问题是当我对这3个捆绑包进行更新时,它们启动并正常工作,但我看到每次执行此操作时jconsole上增加了800-900个类.强制gc似乎也没有清理这些对象.那么,这些旧的有线物体会是什么呢?服务依赖项应该自动更新,并且bundle之间没有代码依赖关系.我检查了更新之前和之前的类数量的差异.
我可以看到一些类的数量增加了一倍,如org.apache.activemq.camel.component.VmComponent, org.apache.commons.dbcp.BasicDataSource ..etc和我在我的camel路由中定义的一些自定义bean.我依赖于camel-core,blueprint,quartz等容器.在camel-context中使用bean,VM端点等等,以及在更新时在blueprint-config xml中定义的组件.我知道一旦更新捆绑包,建议调用FrameworkWiring.refreshBundles().但是,我没有捆绑之间的代码共享,我推测任何其他依赖容器应该处理我认为现在是错误的.我不确定servicemix中当前的felix框架实现是否支持FrameworkWiring.refreshBundles()(ref),我无法让它工作.我该如何解决这个问题?
谢谢你好
作为Camel和ServiceMix的用户,我经常需要监控这些工具以用于开发目的.我主要使用JConsole从ServiceMix和Camel访问MBean.它为ESB开发人员提供了一些非常有用的指标.
我还使用karaf(web)控制台来跟踪我的路线和捆绑状态.环顾StackOverflow,我发现了一个有趣的链接,解释了如何为ServiceMix 4设置Hyperic HQ:使用Hyperic HQ监控Servicemix.
它们是您认为值得学习/用于Camel/SMX开发的其他工具吗?
Fuse ESB使用带有OSGi的karaf服务器.
对于代码,如果任何人有步骤获取应用程序的调试器,它将有所帮助.
我目前正在使用Eclipse Indigo.在使用OSGi时,我们使用Maven来构建相同的内容.
哪个插件对OSGi的Karaf有帮助
eclipse eclipse-plugin apache-karaf fuseesb apache-servicemix
我尝试在osgi容器中运行Hibernate验证器.
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix.bundles</groupId>
<artifactId>org.apache.servicemix.bundles.hibernate-validator</artifactId>
<version>5.0.2.Final_1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.1</version>
</dependency>
public class HibernateValidationProviderResolver implements ValidationProviderResolver {
@Override
public List<ValidationProvider<?>> getValidationProviders() {
List<ValidationProvider<?>> list = new ArrayList<>(1);
list.add(new HibernateValidator());
return list;
}
}
Configuration<?> configuration = Validation.byDefaultProvider().providerResolver(
new HibernateValidationProviderResolver()
).configure();
ValidatorFactory validatorFactory = configuration.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
Set<ConstraintViolation<Group>> constraintViolations = validator.validate(group);
public class Group {
@NotNull
@Size(min=2)
private String title;
}
Run Code Online (Sandbox Code Playgroud)
尝试运行,equinox控制台没问题:
10 RESOLVED …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个X?-GB大文件作为流发送到ActiveMQ队列进行处理.
我知道ActiveMQ 支持流,camel-jms也是如此,但是我尝试在队列上设置的东西似乎没什么区别.唯一改变的是关闭流缓存结果是一个"流关闭"异常.
我愿意使用处理器或自定义类(只要资源得到清理),但这应该可以从蓝图中获得.如何通过camel-activemq正确处理大文件而不会出现OutOfMemoryError?
运用
这是我的骆驼蓝图
<?xml version="1.0" encoding="UTF-8"?>
<blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
<!-- just calls exchange.setBody(exchange.getBody(InputStream.class)) -->
<bean id="toStreamBody" class="my.test.toInputStream"/>
<!-- define a bean of type StreamCachingStrategy which CamelContext will automaticly use -->
<bean id="streamStrategy" class="org.apache.camel.impl.DefaultStreamCachingStrategy">
<property name="spoolDirectory" value="${java.io.tmpdir}TestTemp/#uuid#/"/>
<property name="spoolThreshold" value="131072"/>
<property name="spoolUsedHeapMemoryThreshold" value="70"/>
<property name="anySpoolRules" value="true"/>
</bean>
<!-- streamCaching="true" is "not a valid attribute" -->
<camelContext streamCache="true" xmlns="http://camel.apache.org/schema/blueprint">
<route id="file_route">
<from uri="file://FileUploadBin?delete=false&moveFailed=.error"/>
<!-- just calls exchange.setBody(exchange.getBody(InputStream.class)) -->
<bean ref="toStreamBody"/>
<to uri="activemq:queue:TestQ"/>
</route> …Run Code Online (Sandbox Code Playgroud) java activemq-classic inputstream apache-camel apache-servicemix
我试图找出Apache ServiceMix 4.2的开始
可悲的是,主页上的教程似乎已经过时了 ...... 4.2服务似乎是开箱即用的,并配置了karaf,而教程则讨论将文件复制到不再存在的"hotdeploy"文件夹中在4.2 ...
有人能指出我对ServiceMix 4.2有效的教程吗?我正在尝试测试两个简单的HelloWorld Web服务的通信,或者看看如何配置BC来连接Web服务或类似的东西,只是为了开始.非常感谢任何帮助或指示.
我需要xlsx在OSGi包中处理Excel文档,但org.apache.servicemix.bundles.poi缺少使用2007和旧格式的类.
我已经创建了一个带有完整apache poi的OSGi包(jar文件)(包括ooxml官方apache poi包中没有的类).我用过这个pom.
所以,经过一些努力,我有我想要的捆绑.现在的问题是如何将它与我现有的捆绑包一起使用?我怎么能告诉它导入我需要的东西?从理论上讲,这个pom文件<servicemix.osgi.export>列出了要导出的命名空间,我应该可以在我的包中导入它们.
我是OSGi主题的新手,但尝试了解一下这项技术.
经过一些研究我无法找到问题的答案,eclipse处女座和apache servicemix之间的真正区别是什么?
我自己揭示了这个谜团:我已经看过两者了,首先我认为virgo似乎是像osgi的web服务器一样的想法,而servicemix更像是公共汽车.但后来我看到,服务组合附加了jetty,甚至我可以添加web控制台功能到浏览器的托管servicemix,并得到完全混淆.现在我不知道,mayby virgo和servicemix是同一种软件,但是有不同的捆绑和生产者(simmilar到例如jetty和tomcat)?
我会非常感谢一些信息.对不起,如果我的问题很愚蠢并且回答非常简单,但正如我之前所说的那样,我对这项技术感兴趣:)
我有以下错误:
在文本中:
Error executing command: Error restarting bundles:
Unable to start bundle 278: Uses constraint violation. Unable to resolve resource demo-persistence-jpa [demo-persistence-jpa [278](R 278.0)] because it is exposed to package 'javax.persistence' from resources javax.persistence [javax.persistence [248](R 248.0)] and org.apache.geronimo.specs.geronimo-jpa_2.0_spec [org.apache.geronimo.specs.geronimo-jpa_2.0_spec [266](R 266.0)] via two dependency chains.
Chain 1:
demo-persistence-jpa [demo-persistence-jpa [278](R 278.0)]
import: (&(osgi.wiring.package=javax.persistence)(version>=2.1.0))
|
export: osgi.wiring.package: javax.persistence
javax.persistence [javax.persistence [248](R 248.0)]
Chain 2:
demo-persistence-jpa [demo-persistence-jpa [278](R 278.0)]
import: (osgi.wiring.package=org.hibernate.proxy)
|
export: osgi.wiring.package=org.hibernate.proxy; uses:=javax.persistence
com.springsource.org.hibernate [com.springsource.org.hibernate [230](R 230.0)]
import: (&(osgi.wiring.package=javax.persistence)(version>=1.0.0)(!(version>=2.0.0))) …Run Code Online (Sandbox Code Playgroud) osgi ×6
java ×5
apache-camel ×4
apache-karaf ×2
hibernate ×2
eclipse ×1
esb ×1
fuseesb ×1
inputstream ×1
jpa ×1
monitoring ×1
openxml ×1
osgi-bundle ×1