2011-11-01 4 views
0

Je développe actuellement mon premier service Web.Invocation du service Web avec JavaScript

Le client est développé avec JavaScript.

Mon problème est que cela n'a pas fonctionné. Je ne sais pas quel est mon problème. Je pense que c'est une erreur sur le site client. Je l'ai essayé avec un Java Web-Service Client et là ça marche.

Web-Service:

import javax.jws.*; 
import javax.jws.soap.SOAPBinding; 
@WebService(name="TicketWebService", targetNamespace = "http://my.org/ns/") 
@SOAPBinding(style = SOAPBinding.Style.RPC) 
public class TicketWebService { 

    @WebMethod(operationName="getContact") 
    public String getContact() 
    { 

    return "Hallo Hans!!!"; 
    } 
} 

Publier sur le serveur:

import javax.swing.JOptionPane; 
import javax.xml.ws.Endpoint; 

public class PublishWsOnServer 
{ 
    public static void main(String[] args) 
    { 
    Endpoint endpoint = Endpoint.publish("http://localhost:8080/services", 
              new TicketWebService()); 
    JOptionPane.showMessageDialog(null, "Server beenden"); 
    endpoint.stop(); 
    } 
} 

Client:

<html> 
    <head> 
    <title>Client</title> 
    <script language="JavaScript"> 
function HelloTo() 
{ 
    var endpoint = "http://localhost:8080/services"; 
    var soapaction = "http://localhost:8080/services/getContact"; 

    xmlHttp = getXMLHttp(); 
    xmlHttp.open('POST', endpoint, true); 
    xmlHttp.setRequestHeader('Content-Type', 'text/xml;charset=utf-8'); 
    xmlHttp.setRequestHeader('SOAPAction', soapaction); 

    xmlHttp.onreadystatechange = function() { 

     alert(xmlHttp.responseXML); 

    } 

    xmlHttp.send(request); 
} 
</script> 
    </head> 
    <body onLoad="HelloTo()" id="service"> 
    Body in Client 
    </body> 
</html> 

L'alerte ne fonctionne pas ...

+0

Vous savez si la demande atteint le client? Créez un exemple de sortie dans le service, par ex. System.out.println. – home

+0

merci pour votre réponse ... J'écris un system.out.println dans la méthode getContact() Où devrait être la sortie? Je ne l'ai trouvé nulle part ... – user959456

+0

La sortie devrait être disponible dans la console à partir de laquelle vous démarrez votre Java Web Service (méthode main []). – home

Répondre

0

Je suis assez nouveau à JAX-WS mais je pense que mayb Votre problème n'est pas du côté du client. tout here d'abord vous avez un exemple HelloWorld qui fonctionne très bien, si vous regardez dans le code que vous verrez que dans la mise en œuvre de services Web l'annotation WebService est définie comme

@WebService(endpointInterface = "com.mkyong.ws.HelloWorld") 

qui est le package complet de votre " TicketWebService ". Une autre différence est que l'exemple définit une interface (marquée avec l'annotation @WebService) et l'implémente, y compris @WebService également dans l'implémentation. Je ne pense pas que ce soit obligatoire, mais c'est une bonne pratique pour définir l'interface.

Questions connexes