我开发了一个自定义中介及其相应的Factory / Serializer类,以便我可以在序列中为它配置复杂的配置选项。这是使用碳工作室的碳应用项目制作的。
问题是我可以使配置元素工作的唯一方法是在 .car 文件之外部署jar文件。
我可以直接部署 .car 文件以使其正常工作吗?我必须在哪里放置 META-INF / services 文件夹才能正常工作?
这是我的CarbonAppProject结构
CarbonApp
+--artifacts
+--lib
+--library
+--bundle
+--jXLS <-- Java Library Artifact
+--synapse
+--mediator
+--XlsToObjectMediator <-- Custom Mediator Artifact
+--builder
+--META-INF
+--services
+--org.apache.synapse.config.xml.MediatorFactory <-- FILE
+--org.apache.synapse.config.xml.MediatorSerializer <-- FILE
+--src
+--main
+--java
+--<package> <-- mediator, factory and serializer clases
非常感谢任何帮助。
答案 0 :(得分:2)
你无法使用这个版本的Carbon Studio,但它可以使用它的新版本。您可以从http://builder1.us1.wso2.org/~developerstudio/developer-studio/2.0.0/RC1/wso2-developer-studio_2.0.0.RC1.zip
获取更新版本步骤。
现在,您将能够在ESB中运行ESB Custom Mediator而不会出现任何问题。
.
|-- pom.xml
`-- src
`-- main
|-- java
| `-- ddd
| `-- dd.java
`-- resources
`-- META-INF
`-- services
|-- org.apache.synapse.config.xml.MediatorFactory
`-- org.apache.synapse.config.xml.MediatorSerializer
您的调解员项目结构与上述类似
希望这会有所帮助!!
Thankss。
/ Harshana
答案 1 :(得分:1)
我不认为声明JavaLibraryArtifact项目和Custom mediator项目之间的项目级依赖关系将解决这个问题。
但是您可以通过从mediator项目向实际的第三方库添加依赖项来实现此目的。
步骤:
现在您已将jXLS添加到Custom mediator项目构建路径中。因此,您不会在Custom Mediator项目中看到任何错误。
如果打开Custom mediator项目的.Classpath文件,您将看到类似于以下内容的条目。
<classpathentry kind="lib" path="/JavaLibArtifactProject/jXLS.jar"/>
为了避免Maven的编译错误,您需要在Custom mediator项目pom.xml中为jXLS库添加依赖项。
通过执行上述步骤,您可以避免在项目中复制JXLS库。
希望这会有所帮助!!
感谢。
/ Harshana