Can't create a pass-through web service mediation in ServiceMix
---------------------------------------------------------------
Key: SM-1465
URL: https://issues.apache.org/activemq/browse/SM-1465
Project: ServiceMix
Issue Type: Bug
Components: servicemix-common
Affects Versions: 3.2.1
Reporter: Manuel EVENO
We can't create a pass-through mediation for a web service.
We can't configure cxf-bc:provider and cxf-bc:consumer to expose and consume
the same WSDL.
The point here is that the service and the endpoint name are the same so
ServiceMix doesn't accept to deploy both the consumer and the provider.
ServiceMix does not make a difference between the consumer role and the
provider role for a service.
We want to do that to be able to add audit and security steps in the esb.
here is the services configuration :
<context:property-placeholder
location="classpath:esb-client-services.properties"/>
<cxfbc:consumer wsdl="classpath:HelloService.wsdl"
service="hello:HelloService"
endpoint="HelloService"
targetUri="${esb.client.services.rootUrl}/helloService"
targetService="hello:HelloService"
targetEndpoint="HelloService"
/>
<cxfbc:provider
wsdl="classpath:HelloService.wsdl"
service="hello:HelloService"
endpoint="HelloService"
locationURI="${ekip.client.services.rootUrl}/HelloService"
/>
Here is the full exception
<component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message">
<component-name>servicemix-cxf-bc</component-name>
<component-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-msg>
<msg-loc-info>
<loc-token/>
<loc-message>Unable to deploy service unit</loc-message>
</msg-loc-info>
</task-status-msg>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token/>
<loc-message>An endpoint is already registered for key:
{http://hello.samples.sofinco.com}HelloService:HelloService</loc-message>
<stack-trace><![CDATA[java.lang.IllegalStateException: An
endpoint is already registered for key:
{http://hello.samples.sofinco.com}HelloService:HelloService
at org.apache.servicemix.common.Registry.registerEndpoint(Registry.java:55)
at
org.apache.servicemix.common.Registry.registerServiceUnit(Registry.java:68)
at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:73)
at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
at
org.apache.servicemix.jbi.framework.DeploymentService.deploy(DeploymentService.java:206)
at
org.apache.servicemix.jbi.framework.AdminCommandsService.deployServiceAssembly(AdminCommandsService.java:212)
at
org.apache.servicemix.jbi.container.DeployServiceAssembly.doDeploy(DeployServiceAssembly.java:57)
at
org.apache.servicemix.jbi.container.DeploySupport.deploy(DeploySupport.java:58)
at
org.apache.servicemix.jbi.container.SpringJBIContainer.afterPropertiesSet(SpringJBIContainer.java:111)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1203)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:76)
at
com.sofinco.capi.esb.test.ServiceMixConfigurationTest.setUp(ServiceMixConfigurationTest.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:122)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:86)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
at
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
]]></stack-trace>
</msg-loc-info>
</exception-info>
</task-result-details>
</component-task-result-details>
</component-task-result>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.