Je rencontre des problèmes pour invoquer une méthode présente dans un service Web. Le wsdl a été créé à l'aide d'AXIS.
Lorsque j'essaie de l'invoquer en utilisant mon Java, j'obtiens des valeurs nulles de la réponse du service.
Je reçois le message d'avertissement imprimé dans ma console:
Impossible de trouver les classes requises (javax.activation.DataHandler et javax.mail.internet.MimeMultipart). La prise en charge des pièces jointes est désactivée.
En essayant de résoudre ce problème, j'ai ajouté activation.jar et mail.jar dans mon chemin de construction de l'espace de travail, redémarré le serveur.
MODIFIER:
Clic droit sur le WSDL ==> Generate CLient
Ensuite, j'ai obtenu une classe proxy, en l'utilisant, j'ai écrit ceci pour appeler la méthode de service:
public class CallingWebService1 {
public static void main(String[] args) throws Exception {
WebService1Proxy proxy1 = new WebService1Proxy();
proxy1.setEndpoint("http://localhost:8045/WebService1/services/WebService1");
EmployeeDetails details = proxy1.getDetails();
System.out.println("Employee Id: " + details.getEmpId());
System.out.println("Employee Name: " + details.getEmpName());
System.out.println("Dept Id: " + details.getDeptId());
System.out.println("Dept Name" + details.getDeptName());
System.out.println("Age: " + details.getAge());
}
Mais le problème persiste :(
Plus d'informations:
La méthode getDetails () exécute une opération de base de données récupérant certains enregistrements de la base de données Oracle. Pour effectuer l'opération DB, class12.jar est utilisé. Cela a-t-il quelque chose à voir avec l'invocation de la méthode de service comme je le fais?
Afin de résoudre le problème javax.activation.DataHandler, vous devez ajouter JavaBeans Activation Framework activation.jar dans votre chemin de classe.
Afin de résoudre le problème javax.mail.internet.mimeMultipart, vous devez ajouter Java Mail API mail.jar dans votre chemin de classe.
Les messages d'avertissement imprimés dans votre console montrent que les pots ci-dessus ne sont pas dans le chemin de classe.
Seulement n pot (mail.jar) suffit pour résoudre ce problème. Ce pot devrait se présenter dans votre chemin de classe.
Malheureusement, wsdl est toujours utilisé :( Vous pouvez résoudre cet avertissement en ajoutant des dépendances ci-dessous.
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>