ArrayList est-il pris en charge dans le service Web Apache Axis?

J’ai écrit un simple service Web HelloWorld. Qui prend un ArrayList comme paramètre. Le code est aussi simple que `import java.util.ArrayList;

public class Service { public void service(ArrayList list) { System.out.println("Hello World.."); } }` 

J’utilise Eclipse Helios SR1 et j’essaie de générer le service Web. Sélection de la mise en œuvre Webservice sur “Service” et Sélection de l’exécution du serveur comme Tomcat 6.0 et Webservice runtime comme Apache Axis. Cliquer sur next donne un avertissement car la classe de service "Service" n’est pas conforme à une ou plusieurs exigences de la JAX-RPC 1.1 et peut ne pas se déployer ou fonctionner correctement. La méthode “service” sur la classe de service "Service" utilise un type de données, "java.util.ArrayList" , qui n’est pas pris en charge par la spécification JAX-RPC. Les instances du type peuvent ne pas sérialiser ou désérialiser correctement. Il peut en résulter une perte de données ou une défaillance complète du service Web.

Cliquer sur ok pour continuer et afficher plus d’avertissement un par un: le type d’entrée java.lang.Class est un type non instanciable et sera omis de l’exemple JSP. Continuer avec un exemple de génération JSP?

Le type d’entrée javax.xml.namespace.QName est un type non instanciable et sera omis de l’exemple JSP. Continuer avec un exemple de génération JSP?

IWAB0189W Le client JSP exemple a omis certaines méthodes car elles contenaient des types non pris en charge.

Une raison pour laquelle cela peut arriver? J’ai vu sur le site Sun : Sun RPC Doc

Selon lui, ArrayList devrait être supporté.

De l’aide?

Tel que cité dans la spécification.

Tableaux

JAX-RPC prend également en charge les tableaux avec les membres des types JAX-RPC pris en charge. Les exemples de tableaux pris en charge sont int [] et Ssortingng []. Les tableaux multidimensionnels, tels que BigDecimal [] [], sont également pris en charge.

Une simple modification de votre signature de méthode pour accepter un tableau par opposition à un tableau ArrayList devrait résoudre le problème.

Il est très pratique d’écrire le WSDL, puis de générer des classes Java à l’aide de l’outil WSDL2Java d’Axis. Vous pouvez toujours vous concentrer davantage sur l’écriture de WSDL selon les besoins de votre entreprise et laisser tout le temps nécessaire au marshaling et à la démolition pour générer des classes.