Comment construire un WSDL à l'aide de Maven
Je suis à la recherche pour remplacer fourni Ant avec Maven. Je connais (mais je n'ai pas utilisé) ant exécuter, et je préfère pas trop.
Pour faire une longue histoire courte, NetSuite offre un wsdl à utiliser lors de la prise des appels de service web againsts son ERP, offre et actuellement, je utiliser leurs ant pour générer les classes de proxy à partir du wsdl. (les exemples d'applications, wsdl et patché axe disponible ici)
Le problème que j'ai, c'est que la tâche ant utilise une version modifiée de l'axe 1.4 (et l'appui aux bibliothèques, plusieurs de qui sont ~7 ans ) et j'aimerais mettre en œuvre cette wsdl à l'aide de bibliothèques qui sont facilement disponibles à partir d'un centre repo maven, et de préférence actuelle.
Quelqu'un peut-il m'indiquer où je dois à la recherche d'une solution qui fonctionne?
Pour tous ceux qui ont besoin de savoir: j'ai tenté de générer avec axis2 et il jette l'exception suivante:
timeException: Element QName is null for ExceededRequestSizeFault!
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:293)
at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: Element QName is null for ExceededRequestSizeFault!
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.emitSkeleton(AxisServiceBasedMultiLanguageEmitter.java:1451)
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:275)
... 2 more
Caused by: java.lang.RuntimeException: Element QName is null for ExceededRequestSizeFault!
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.getFaultParamElements(AxisServiceBasedMultiLanguageEmitter.java:
2925)
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.getFaultElement(AxisServiceBasedMultiLanguageEmitter.java:2844)
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.generateMethodElement(AxisServiceBasedMultiLanguageEmitter.java:
2366)
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.loadOperations(AxisServiceBasedMultiLanguageEmitter.java:2242)
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.createDOMDocumentForSkeleton(AxisServiceBasedMultiLanguageEmitte
r.java:2156)
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.writeSkeleton(AxisServiceBasedMultiLanguageEmitter.java:2082)
at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.emitSkeleton(AxisServiceBasedMultiLanguageEmitter.java:1408)
... 3 more
Des points de Bonus si ses une solution testée avec une récente NetSuite WSDL.
OriginalL'auteur Robert H | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
Je vous suggère de le cxf plugin maven. J'ai fait un petit test avec cette wsdl et il générer et compiler avec succès JVM (1.7) 1408 fichiers sources. (soyez patient, cela prend du temps...)
Je ne reçois que quelques mises en garde à propos de max enum taille atteint. Et j'ai donc dû passer un fichier de liaison pour permettre plus grand des enums. Je l'ai fait par le biais d'une liaison de fichier. Grâce à ce post
Ici est la
bind.xml
fichierEt la partie pertinente de la
pom.xml
(comme vous pouvez le voir: wsdl et bind.xml sont dans/src/main/resources
)OriginalL'auteur ben75