我正在构建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>
当我从pom.xml中删除com.mchange.v2.c3p0
时,应用程序会显示。
我该怎么做?
答案 0 :(得分:0)
我猜你的包没有被启动,因为无法解析com.mchange.v2.c3p0依赖。默认情况下,FuseESB不包含C3P0依赖项,因此您需要将它们包含在项目中或将它们作为单独的包部署。
如果您在自己的捆绑包中提供依赖项,则必须导出c3p0包或将它们添加为私有包。像这样的东西
...
<Private-Package>
...
com.mchange.*
...
</Private-Package>
...
当然你需要在你的pom中为c3p0添加maven依赖。
无论如何,你应该阅读Lukasz的博客文章。