0

我正在构建 cxf 应用程序,它将在 FUSE ESB 下运行。

通常我只为交换数据创建应用程序,但现在我必须创建将连接到 mysql 的应用程序。

我已经开始在 cxf 下构建配置,但是我发现了一个问题。

当我添加类时:

com.mchange.v2.c3p0

<Import-Package>的应用程序从 FUSE ESB 上的可用 cxf 应用程序中消失。

 <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.1.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                    <Import-Package>
                       ......

                        com.mchange.v2.c3p0,
                      ......
                       <DynamicImport-Package>...</DynamicImport-Package>

                </instructions>
            </configuration>
        </plugin>

当我com.mchange.v2.c3p0从 pom.xml 中删除时,应用程序出现。

我需要做什么?

4

1 回答 1

0

我猜您的捆绑包没有启动,因为无法解决 com.mchange.v2.c3p0 依赖项。默认情况下,FuseESB 不包含 C3P0 依赖项,因此您需要将它们包含在您的项目中或将它们部署为单独的包。

如果您在自己的包中提供依赖项,则必须导出 c3p0 包或将它们添加为私有包。像这样的东西

   ...
   <Private-Package>
      ...
      com.mchange.*
      ...
    </Private-Package>
    ...

当然,您需要在 pom.xml 中添加 c3p0 的 maven 依赖项。

无论如何,您应该阅读 Lukasz 的博客条目。

于 2012-03-27T14:27:46.923 回答