Axis2 de wsdl2java échoue sur le RPC/Encoded style de web services
Est-il une alternative aux Axis2? Ou la façon de le faire fonctionner (différente de la liaison de données, par exemple)?
Retrieving document at '...'.
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:271)
at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:53)
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:224)
... 2 more
Caused by: java.lang.reflect.InvocationTargetException
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:597)
at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:50)
... 3 more
Caused by: org.apache.axis2.schema.SchemaCompilationException: can not find type {http://schemas.xmlsoap.org/soap/encoding/}Array from the parent schema ... at org.apache.axis2.schema.SchemaCompiler.copyMetaInfoHierarchy(SchemaCompiler.java:1296)
at org.apache.axis2.schema.SchemaCompiler.processComplexContent(SchemaCompiler.java:1258)
at org.apache.axis2.schema.SchemaCompiler.processContentModel(SchemaCompiler.java:1153)
at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1097)
at org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:1017)
at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:931)
at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:766)
at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:552)
at org.apache.axis2.schema.SchemaCompiler.process(SchemaCompiler.java:1991)
at org.apache.axis2.schema.SchemaCompiler.processParticle(SchemaCompiler.java:1874)
at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1081)
at org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:1017)
at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:931)
at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:766)
at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:552)
at org.apache.axis2.schema.SchemaCompiler.process(SchemaCompiler.java:1991)
at org.apache.axis2.schema.SchemaCompiler.processParticle(SchemaCompiler.java:1874)
at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1081)
at org.apache.axis2.schema.SchemaCompiler.processAnonymousComplexSchemaType(SchemaCompiler.java:980)
at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:934)
at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:592)
at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:563)
at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:370)
at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:280)
at org.apache.axis2.schema.ExtensionUtility.invoke(ExtensionUtility.java:103)
... 8 more
REMARQUE: Apache CXF échoue ainsi 🙁
OriginalL'auteur Andrey Adamovich | 2009-08-31
Vous devez vous connecter pour publier un commentaire.
Il y a seulement 3 options que j'ai trouvé qui peut être utilisé en Java pour les vieux style rpc/encoded services web:
1) le SOLEIL est l'implémentation de référence de JAX-RPC (wscompile)
2) WebLogic du clientgen (j'ai utilisé la version 8.1)
3) Axis1 v1.4 wsdl2java
À l'origine, nous avons utilisé l'Axe 1.4, et il a montré assez de mauvaises performances sur un nombre relativement grand service de réponses (>20k) c'est à dire le client le temps de traitement a augmenté de plus de deux fois supérieure à comparer à une simple requête HTTP sans analyse. Et le temps augmente si la réponse est plus grand. Il a fallu plus de 30s à juste désérialiser 1MB grand respose.
Du SOLEIL généré le client n'a pas vraiment de travail et il a échoué sur demande avec le message:
J'ai essayé à l'aide de WebLogic de 8.1 clientgen, et comparé code client à l'Axe 1.4 généré performance du client. Et de l'Axe a gagné la course. Ainsi, même si l'Axe client effectue pas que bon nombre relativement grand des réponses c'est toujours la meilleure option pour les vieux rpc/encoded services web :(.
java -classpath path/to/axis-1_4/lib/ org.apache.axis.wsdl.WSDL2Java
j'ai eu unError: Could not find or load main class org.apache.axis.wsdl.WSDL2Java
L'homme, c'était il y a 6 ans :). Votre erreur indique que vous avez des problèmes avec votre classpath.
OriginalL'auteur Andrey Adamovich
RPC encodage n'est pas pris en charge sur Axis2. Source: http://wiki.apache.org/ws/StackComparison
OriginalL'auteur Buhake Sindi
Essayer de l'Axe 1, je l'ai utilisé pour cette raison exacte.
Avez-vous essayé XFire ou JbossWS?
OriginalL'auteur Robert Munteanu
J'ai eu des problèmes avec SimpleDataBinding dans axis2 trop. Je l'ai résolu en utilisant la
AxisDataBinding option. Ce qui est un peu plus de poids lourds à partir d'un codage point de vue,
mais fonctionne après tout.
La BAD dans le détail
En outre je serai d'accord pour Robert, indiquant que axis1 est une option intéressante aussi.
OriginalL'auteur KB22
Je ne vais pas entrer dans le détail, mais puisque vous l'avez demandé alternatives:
La version 6 de Java SE et Java EE 5 navire avec le Métro JAX-WS (de référence) de la mise en œuvre.
Il vit dans la
javax.xml.ws
espace de noms.Du soleil Developer Network a un article L'introduction de JAX-WS 2.0 Avec la Plate-forme Java SE 6 qui pourrait être utile.
Ayant dit tout cela, Eclipse n'est pas très JAX-WS amical.
Devrais-je assumer JAX-RPC ne fonctionne pas non plus, alors?
J'ai essayé à l'aide de JAX-RPC de référence de mise en œuvre et wscompile. Après avoir téléchargé tous les pots que le SOLEIL ne comprend pas normal distrubtion, j'ai réussi à générer le client, mais il a échoué à l'exception: *Causés par: inattendu nom de l'élément::=getSubscriberInfoReturn, réel={ws.généré.api}getSubscriberInfoReturn
OriginalL'auteur Powerlord
Vous pouvez ajouter le paramètre suivant pour
wsdl2java
commandeOriginalL'auteur Olcay Tarazan
Cette question soulève si le savon le style d'encodage est vieux
axis2 wsdl2java ou wsimport ne peut pas comprendre l'ancien RPC style d'encodage
donc, utiliser l'axe 1.4 ou version antérieure de l'axe
le tirage dos est qu'u ne trouverez pas wsdl2java comme un outil dans le vieux-axe
au lieu de cela, vous trouverez un fichier de classe dans l'axe fichier jar
si u ont pour définir manuellement un chemin de classe et de l'utilisation de cette classe
OriginalL'auteur Prashant