Bundle-Classpath

时间:2019-04-24 09:35:23

标签: java maven soap apache-camel apache-karaf

对于Apache Camel来说,我一般还比较陌生,但是了解它的概念并且能够找到解决方法。我正在实现一个Web服务,供外部系统使用,并且已获得了可以使用的请求/响应格式。我现在面临的问题是响应SOAP的根元素符合我正在使用的规范,因为Camel将附加文本附加到根元素名称上。

我希望返回的响应正文如下:

<ActionResponse>
    <ValueOne>000001100913103301000000000001</ValueOne>
    <ValueTwo>000002</ValueTwo>
</ActionResponse>

如下所示的请求正文:

<ActionRequest>
    <ValueOne>000001100913103301000000000001</ValueOne>
    <ValueTwo>000002</ValueTwo>
</ActionRequest>

但当前能够返回如下响应正文:

<ActionRequestResponse>
    <ValueOne>000001100913103301000000000001</ValueOne>
    <ValueTwo>000002</ValueTwo>
</ActionRequestResponse>

我在没有正面解决方案的情况下尝试了关于StackOverflow,Github和互联网上其他位置的不同建议。迄今为止,最有前途的解决方案是将SOAPBinding批注设置为裸露:

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

在接口定义中

以及将javax.jsw添加到pom.xml依赖项中。

成功完成此操作后,我将在已安装的依赖项列表中看到maven依赖项,但是会抛出[ERROR] Bundle com.kudimoney:kudimoney.inbound-nip-service:bundle:1.0.0 : Unresolved references to [javax.jws.soap] by class(es) on the Bundle-Classpath[Jar:dot]: [com/kudimoney/soap/NIPInterface.class]编译时错误。从昨天开始,我一直在尝试解决此问题,但没有成功。

如果我将javax.jms.soap添加到<Import-Package>,则项目可以成功构建,但是由于Error executing command: Error installing bundles: Unable to start bundle file:path/name/version.jar: org.osgi.framework.BundleException: Unable to resolve app.company.name [373](R 373.0): missing requirement [app.company.name [373](R 373.0)] osgi.wiring.package; (&(osgi.wiring.package=javax.jws.soap)(version>=2.0.0)(!(version>=3.0.0))) Unresolved requirements: [[app.company.name [373](R 373.0)] osgi.wiring.package; (&(osgi.wiring.package=javax.jws.soap)(version>=2.0.0)(!(version>=3.0.0)))]捆绑包异常而无法在Apache Karaf中启动。

有任何想法为什么会这样?

0 个答案:

没有答案