Je reçois l'erreur suivante lorsque j'arrive à la ligne qui appelle un service web vraiment BASIC que j'ai lancé sur Tomcat/Axis.Code client Java simple pour le service Web - quelque chose à voir avec QName?
Element or attribute do not match QName production: QName::=(NCName':')?NCName
Quel est le problème avec QName? - Je ne trouve même pas d'informations utiles à ce sujet.
Mon code client est ci-dessous:
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class TestClient {
public static void main(String [] args)
{
try{
String endpoint = "http://localhost:8080/TestWebService/services/DoesMagic";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://testPackage.fc.com/, doBasicStuff"));
String ret = (String) call.invoke(new Object[] {"some kind of message"});
System.out.println(ret);
}catch(Exception e){
System.err.println(e.toString());
}
}
}
Mon code web serivce est vraiment basique - juste une classe simple qui retourne votre chaîne d'entrée avec un peu de texte concat:
public String doBasicStuff(String message)
{
return "This is your message: " + message;
}
Y at-il une raison pour laquelle vous n'utilisez pas wsdl2java avec Axis pour générer des classes de proxy pour le service Web et ses méthodes? Je ne peux pas dire si vous écrivez juste un échantillon/code de test, mais généralement vous n'avez pas besoin d'utiliser les méthodes Call ou invoke() par vous-même. wsd2ljava pourrait vous faire gagner beaucoup de temps. –