有没有一种方法可以告诉Camel默认使用Saxon库,因此我不需要在每个XLST转换中都指定它?例如:
.to("xslt:my-file.xsl?transformerFactoryClass=net.sf.saxon.TransformerFactoryImpl")
Run Code Online (Sandbox Code Playgroud)
在每个端点中指定它会降低代码的可读性。
我已经看到了有关设置环境属性的建议(尽管在其他情况下):
javax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
Run Code Online (Sandbox Code Playgroud)
是否可以在单个骆驼环境中设置这种方式?
PS我使用的是Camel 2.10,因此saxon不幸的是参数建议还不是一个选择...
我有两个或更多非特定的JDBC驱动程序.我希望在OSGi容器中使用它们.某些驱动程序来自同一第三方,只有版本差异和一个或多个冲突类,包括驱动程序类和连接URL.
解释如何从每个捆绑包中制作OSGi包.
我正在使用JBoss Fuse 6.2.1.redhat-117,Red Hat JBoss Developer Studio 10.4.0.GA(带有Fuse集成的Eclipse),Maven 3.3.9,Eclipse Maven集成,Windows 7.
我尝试使用两步过程为每个JDBC驱动程序生成自己的bundle.
这不够好.仅当JDBC驱动程序是OSGi中安装的唯一冲突驱动程序时,它才有效.
我能说的最好,我所描述的问题是OSGi创建的问题.因此,我相信有一个解决方案.
我愿意竭尽全力解决这个问题(缺乏硬编码,与通用实施不同),因为迄今为止付出的投资和解决方案所需的服务.
我们一直在使用Apache ActiveMQ和Camel产品,但是想要看一个好的基础ESB.我一直在阅读有关Fuse的Redhat网站,但无法找到有关编码器的Fuse和Apache之间重大差异的一个很好的总结.
从设计人员/开发人员的角度来看,Fuse与我们一直使用的Apache Camel和ActiveMQ之间的重大差异是什么?我得到了可爱的概述,FuseIDE和ESB管理工具.但我真的只想知道代码级别的差异,即它是否引入了更有用的Camel端点?还有其他真正有用的东西库可以让我作为设计师/编码员的生活变得更轻松吗?是否有任何陷阱需要注意?
我只需要一些指示来帮助我进行搜索,而不是一本书.或者更好的是一个快速链接到一个文件,覆盖所有这些(永远希望:o)!)我有一个短时间形成一个观点继续前进或机会将通过我.
谢谢.
SK
看来Fuse ESB已被Red Hat收购,现在将作为JBoss Fuse提供。
假定它们本质上是相同的技术,加上或减去一些改进,是否正确?
我看到这两者都是开源的,并且基于相同的技术堆栈构建,因此我希望这只是名称更改,而不会对现有项目产生任何重大影响。
我使用maven-bundle-plugin来创建OSGi合规性jar.除了Import-Service和Export-Service之外,它还会生成预期的OSGi MANIFEST.
根据http://wiki.osgi.org/wiki/Import-Service,不推荐使用Import-Service.难怪我无法在分布式结构模式(集群)中启动使用者捆绑包.bundle的MANIFEST包含Import-Service条目,导致它等待(宽限期).当我手动删除该条目时,它开始完美.
那么,如何配置maven-bundle-plugin以从其生成的JAR中排除Import-Service和Export-Service?如果我必须手动删除条目,这真的很麻烦.
谢谢
我一直试图找到一个可以从中下载Fuse的位置,但Red Hat网站中的所有链接似乎都表明该产品的免费下载版本仅供"仅用于开发目的".是否有下载位置可以清楚地将其标识为开源版本?
默认情况下,fuse ESB给出一个以cxf为前导的终点url.例如,如果我有
<jaxws:endpoint id="HTTPEndpoint"
implementor="org.fusesource.example.PersonImpl"
address="/PersonServiceCF"/>
Run Code Online (Sandbox Code Playgroud)
在Spring bean中配置的端点,在将其部署为bundle之后,fuse将发布此端点作为 http://localhost:8181/cxf/PersonServiceCF?wsdl
现在我想将默认的前导url cxf更改为其他一些xyz.应该是这样的
http://localhost:8181/xyz/PersonServiceCF?wsdl.我怎么能这样做,我googled很多,但找不到配置文件.任何暗示都非常感激.
我试图通过阅读这篇文章来解决何时使用 Apache Camel 是合适的还是不合适的 - https://dzone.com/articles/when-use-apache-camel。文章中提到,在服务数量较少的情况下,使用Camel这样的集成框架可能会有些矫枉过正,这是有道理的。但是我被这句话搞糊涂了
尽管 FuseSource 提供商业支持,但我不会将 Apache Camel 用于非常大的集成项目。在大多数情况下,ESB 是完成这项工作的正确工具。它提供了许多附加功能,例如 BPM 或 BAM。当然,您也可以使用多个单一的框架或产品并“创建”您自己的 ESB,但这是浪费时间和金钱(在我看来)。
这是因为集成框架缺少 ESB 提供的组件吗?如果有,那些是什么?
我想在OSGi容器中两次安装两个相同的bundle或相同的bundle.我使用的OSGi容器是FUSE ESB.这是捆绑信息:
pom.xml中:
<groupId>com.helloworldbundle</groupId>
<artifactId>HelloWorldBundle</artifactId>
<version>1.0.0-SNAPSHOT</version>
Run Code Online (Sandbox Code Playgroud)
蓝图:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<bean id="helloworldbundlecopybean"
class="com.helloworldbundle.HelloWorld"
init-method="init" destroy-method="destroy">
</bean>
</blueprint>
Run Code Online (Sandbox Code Playgroud)
第一次安装成功.当我再次尝试安装时,它失败了.然后我制作项目的副本并修改它:
将项目文件夹名称更改为HelloWorldBundleCopy
将工件更改为
<artifactId>HelloWorldBundleCopy</artifactId>
Run Code Online (Sandbox Code Playgroud)
将bean id更改为
<bean id="helloworldbundlecopybeancopy"
Run Code Online (Sandbox Code Playgroud)
但我仍然无法安装修改后的捆绑包:
Error executing command: Error installing bundles:
Unable to install bundle /home/li/Documents/Java/HelloWorldBundleCopy/target/HelloWorldBundleCpoy-1.0.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
更新到我的问题:
这是我的场景:
我有三个主机:Host1,Host2和Host3
FUSE ESB OSGi容器安装在Host3中.我需要在Host1和Host2上运行一个服务,例如HelloWorld.此服务已在Host3上的FUSE ESB中注册.
这就是为什么我需要使用FUSE ESB两次注册相同的包.
这是我的问题:
是否可以在容器外部运行捆绑包,例如在一台主机上运行HelloWorld捆绑包,但是将其注册到另一台主机上的FUSE ESB?怎么做?我之前做过的实验是通过以下方式在同一台机器上向FUSE ESB注册服务包:
FuseESB:karaf @ root>安装文件:/home/li/Documents/Java/HelloWorldBundle/target/HelloWorldBundle-1.0.0-SNAPSHOT.jar
2.如何修改现有的maven项目以便在不创建新的maven项目的情况下再次安装它?
在浏览Redhat Fuse ESB文档时,我发现提到的织物容器与独立容器不同.Fabric容器是虚拟/逻辑容器吗?
链接:https://access.redhat.com/documentation/en-US/Fuse_ESB_Enterprise/7.1/html/Deploying_into_the_Container/files/FESBLocateFabric.html