当前位置: 首页 > 知识库问答 >
问题:

Apache Camel启动包时出错

欧阳声
2023-03-14

学习Apache Camel-尝试在jboss-fuse-6.1.0.redhat上部署应用程序-379。

POM如下

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.dao</groupId>
        <artifactId>camelDAO</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>bundle</packaging>
        <properties>
        <camel-version>2.13.0</camel-version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.17</version>
            </dependency>
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-jdbc</artifactId>
                <version>2.13.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-sql</artifactId>
                <version>2.13.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-core</artifactId>
                <version>${camel-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-spring</artifactId>
                <version>${camel-version}</version>
            </dependency>
            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>1.4</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <extensions>true</extensions>
                </plugin>

                <plugin>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-maven-plugin</artifactId>
                    <version>${camel-version}</version>
                </plugin>
            </plugins>
        </build>
    </project>

在数据库配置文件中配置了以下内容

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost/univ" />
        <property name="username" value="root" />
        <property name="password" value="pass" />
</bean>


<bean id="sqlComponent"                                       
      class="org.apache.camel.component.sql.SqlComponent">
      <property name="dataSource" ref="dataSource" />
</bean>

并在路由中调用了sql组件

<to uri="sqlComponent:{{sql.insertData}}" />

在引信上部署时-

Error executing command: Error starting bundles:
    Unable to start bundle 255: Unresolved constraint in bundle  
com.dao.came
lDAO [255]: Unable to resolve 255.0: missing requirement [255.0]   
osgi.wiring.pac
kage; (&(osgi.wiring.package=org.apache.camel.component.sql)  
(version>=2.13.0)(!(
version>=3.0.0))) [caused by: Unable to resolve 253.0: missing   
requirement [253.
0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.camel) 
(version>=2.13.0
)(!(version>=3.0.0)))]

已经使用wrap:install安装了jar,仍然出现上述错误

请帮我弄清楚。谢谢

共有2个答案

施弘壮
2023-03-14

您需要在JBoss Fuse中安装Mysql连接器。对于安装,我们需要在Fuse终端中运行以下语句。

OSGi:install-s wrap:mvn:MySQL/MySQL-connector-Java/5 . 1 . 39

版本可以根据您使用的mysql连接器进行更改。

安装后一次。尝试运行您的项目。

厉念
2023-03-14

尝试导入缺少的包:

    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.3.7</version>
        <extensions>true</extensions>
        <configuration>
            <instructions>
                <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                <Bundle-Description>${project.description}</Bundle-Description>
                <Import-Package>
                    *,
                    org.apache.camel.osgi,
                    org.apache.camel.component.sql,
                    org.apache.camel
                </Import-Package>
            </instructions>
        </configuration>
    </plugin>

并且必须安装camel-sql功能。

更新:

使用wrap:install安装了jar

您只需要对数据库驱动程序执行此操作,所有其他驱动程序都必须按功能进行安装。

>    <bean id="sqlComponent"                                       
>          class="org.apache.camel.component.sql.SqlComponent">
>          <property name="dataSource" ref="dataSource" />    
>    </bean>

这可以更简单地实现:

<to uri="sql:{{sql.insertData}}?dataSource=dataSource" />

并且,请检查您的Camel版本,安装在jboss fuse服务器上,它必须与您的项目中指定的版本相匹配。

 类似资料:
  • 我在清单文件中为我的一个活动定义了一个意图过滤器。当我试图使用以下命令从adb外壳启动此活动时: $adb shell am start 我得到以下错误: 开始:Intent{act=android.Intent.action.VIEW dat=http://www.example.com/gizmospkg=com。实例Android} 错误:活动未启动,无法解析Intent{act=andro

  • 我在模拟器上运行一个Android应用程序。它一直工作到昨天和今天我更新了Android Studio。我得到以下错误。如何解决? 模拟器:警告:将内存大小增加到1GB模拟器:错误: x86仿真目前需要硬件加速!请确保英特尔HAXM已正确安装并可用。CPU加速状态:HAXM必须更新(版本1.1.1

  • 我已经从主网站安装了卡桑德拉。每次我尝试启动它时,我总是得到一个错误 Java HotSpot(TM)64位服务器VM警告:Info:OS::Commit_Memory(0x00007F85B2000000,33554432,0)失败;error=“无法分配内存”(errno=12) OS:distrib_id=Ubuntu distrib_release=14.04 distrib_codena

  • 我试图在xampp控制面板v3.2.1上用xampp 1.8.3启动tomcat,但出现了以下错误: Tomcat启动/停止错误,返回代码:1确保您安装了JavaJDK或JRE,并且所需的端口是免费的查看“/xampp/tomcat/logs”文件夹了解更多信息 谁能帮帮我?我正在用windows 7 如果我的英语不完美,我很抱歉

  • 我正在Mac Os中使用Appium inspector检查iOS应用程序上的元素。 当我用ios软件包详细信息启动Appium检查器时,我无法使用appium启动ios应用程序,并获得以下错误:- 使用的工具版本如下所示:- 错误日志:-

  • 我收到了一个奇怪的错误,我在其他任何地方都找不到。我只是试图启动来启动Firefox。我自己试过了,得到了下面的错误: 错误消息: "测试时出错:java.lang.AbstractMethodError:接收器类org . open QA . selenium . Firefox . geckodriverservice $ Builder未定义或继承抽象类org . open QA . sel