Bonjour,
Je dois accéder aux différentes fonctions de mantis via web Services. Pour situer le contexte, j&
#039;utilise un bus ESB (Mule) qui doit enregistrer des informations dans mantis via web services. Pour cela j&
#039;ai besoin d&
#039;utiliser le schéma WSDL de mantis connect. Pour mes tests j&
#039;ai utilisé soap ui. Jusque là, tout fonctionne parfaitement.
Pour accéder au WSDL depuis Mule j&
#039;utilise le framework Apache CXF. Je rencontre un problème au niveau du type Array définit dans le WSDL. Je n&
#039;arrive donc pas à acccéder au web services.
Voici mon message d&
#039;erreur :
Exception stack is:
1. undefined simple or complex type &
#039;SOAP-ENC:Array&
#039; (org.xml.sax.SAXParseException)
com.sun.xml.xsom.impl.parser.ParserContext$1:140 (null)
2. Error compiling schema from WSDL at {[
localhost]}: undefined simple or complex type &
#039;SOAP-ENC:Array&
#039; (java.lang.RuntimeException)
org.apache.cxf.endpoint.dynamic.DynamicClientFactory$InnerErrorListener:493 (null)
3. Initialisation Failure: Error compiling schema from WSDL at {[
localhost]}: undefined simple or complex type &
#039;SOAP-ENC:Array&
#039; (org.mule.retry.RetryPolicyExhaustedException)
org.mule.retry.policies.AbstractPolicyTemplate:88 (http://www.mulesource.org/docs/site/current2/apidocs/org/mule/retry/RetryPolicyExhaustedException.html)
********************************************************************************
Root Exception stack trace:
org.xml.sax.SAXParseException: undefined simple or complex type &
#039;SOAP-ENC:Array&
#039;
at com.sun.xml.xsom.impl.parser.ParserContext$1.reportError(ParserContext.java:140)
at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.reportError(NGCCRuntimeEx.java:134)
at com.sun.xml.xsom.impl.parser.DelayedRef.resolve(DelayedRef.java:89)
at com.sun.xml.xsom.impl.parser.DelayedRef.run(DelayedRef.java:64)
at com.sun.xml.xsom.impl.parser.ParserContext.getResult(ParserContext.java:95)
at com.sun.xml.xsom.parser.XSOMParser.getResult(XSOMParser.java:190)
at com.sun.tools.xjc.ModelLoader.createXSOM(ModelLoader.java:519)
at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:232)
at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:85)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:187)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:165)
at org.mule.transport.cxf.wsdl.CxfWsdlMessageDispatcher.createClient(CxfWsdlMessageDispatcher.java:99)
at org.mule.transport.cxf.wsdl.CxfWsdlMessageDispatcher$1.initialize(CxfWsdlMessageDispatcher.java:72)
at org.mule.transport.cxf.wsdl.CxfWsdlMessageDispatcher.doConnect(CxfWsdlMessageDispatcher.java:85)
at org.mule.transport.AbstractConnectable$1.doWork(AbstractConnectable.java:204)
at org.mule.retry.policies.AbstractPolicyTemplate.execute(AbstractPolicyTemplate.java:51)
at org.mule.transport.AbstractConnectable.connect(AbstractConnectable.java:197)
at org.mule.transport.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:163)
at org.mule.transport.AbstractConnector.send(AbstractConnector.java:1929)
at org.mule.endpoint.DefaultOutboundEndpoint.send(DefaultOutboundEndpoint.java:77)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:327)
at org.mule.DefaultMuleSession.sendEvent(DefaultMuleSession.java:213)
at org.mule.routing.outbound.AbstractOutboundRouter$2.doInTransaction(AbstractOutboundRouter.java:152)
at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:99)
at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:159)
at org.mule.routing.outbound.ChainingRouter.route(ChainingRouter.java:71)
at org.mule.routing.outbound.DefaultOutboundRouterCollection$1.doInTransaction(DefaultOutboundRouterCollection.java:64)
at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:45)
at org.mule.routing.outbound.DefaultOutboundRouterCollection.route(DefaultOutboundRouterCollection.java:69)
at org.mule.service.AbstractService.dispatchToOutboundRouter(AbstractService.java:878)
at org.mule.model.seda.SedaService.dispatchToOutboundRouter(SedaService.java:513)
at org.mule.model.seda.SedaService$ComponentStageWorker.run(SedaService.java:536)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Unknown Source)
Egalement, j&
#039;ai tenté d&
#039;utilisé Axis2 avec son utilitaire WSDL2Java, afin d&
#039;obtenir un client que je pourrai utiliser comme alternative. Egalement j&
#039;obtient une erreur au niveau du type Array. Voici le message :
org.apache.axis2.schema.SchameCompilationException : can not find type {[
schemas.xmlsoap.org]}Array from the parent schema [
futureware.biz.mantisconnect]
Voici je ne sais pas si c&
#039;est un problème connu? Comment faites-vous pour appelé le web services de mantis connect? Est-il envisageable de modifier le wsdl fournit par mantis?
Merci beaucoup
Bertrand