2012-04-12 2 views
0

Quelqu'un peut-il me dire ce que je fais mal? J'essaie de mettre en place un test de service web rapide juste pour voir si je peux le faire fonctionner pour l'instant. Le problème que j'ai est que, comme indiqué ci-dessous, cela ne fonctionne pas, mais si je change l'URL et remplacer "myWebsite.com" avec "localhost" cela fonctionne. Donc, je sais que le côté serveur fonctionne (j'ai encore vérifié et revérifié cependant). Mais j'en aurai besoin pour travailler avec des clients distants, et je ne peux tout simplement pas le faire fonctionner. Toute aide serait grandement appréciée.Connexion à distance avec les services Web Java

package stickman.Server; 

import java.net.*; 
import javax.xml.namespace.*; 
import javax.xml.ws.*; 
import stickman.Combined.*; 
public class TestApp { 

public static void main(String[] args) throws Exception { 

    // -------------------------------------------- 
    // changing "myWebite.com" to "localhost" works 
    URL url = new URL(
     "http://myWebsite.com:32768/home/rhyan/workspace/Stickman/bin/stickman/Server"); 
    // -------------------------------------------- 

    QName qname = new QName("http://Server.stickman/","StickmanServerService"); 
    Service service = Service.create(url, qname); 
    StickmanServerInterface ssi = service.getPort(StickmanServerInterface.class); 

    Account a = ssi.getAccount("This is a test"); 
    System.out.println(a.getUserId()); 

} 

} 

Edit: voici le suivi des erreurs ...

Exception in thread "main" com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException. 

java.net.ConnectException: Connection refused 
java.net.ConnectException: Connection refused 

at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:161) 
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:133) 
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:254) 
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:217) 
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:165) 
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:93) 
at javax.xml.ws.Service.<init>(Service.java:76) 
at javax.xml.ws.Service.create(Service.java:700) 
at stickman.Server.ServerTestApp.main(ServerTestApp.java:17) 

Répondre

1

Il a fallu 8 jours de lire une pléthore de choses en ligne avant que j'ai finalement trouvé la réponse à mon problème dans une recherche de Google au hasard je suis venu avec: Publishing a WS with Jax-WS Endpoint

« localhost » devrait être 0.0.0.0, et je totalement aurait dû savoir cela. Merci aux personnes qui ont essayé d'aider.

1

Peut-être un problème de DNS? À quelle adresse IP résous-tu myWebsite.com?

+0

Je ne peux pas montrer le site Web actuel, mais le site fonctionne, et le port que j'utilise est ouvert sur le routeur. –

1

Votre exception indique que le service WSDL du service n'est pas accessible, pas le service lui-même. Pouvez-vous confirmer que le wsdl pour le service est disponible à cet emplacement - http://myWebsite.com:32768/home/rhyan/workspace/Stickman/bin/stickman/Server, et l'URL dans le wsdl pointe vers un point de terminaison de travail approprié.

+0

Oui, l'URL pointe vers un point de terminaison de travail approprié, et le site Web est correct et correspond à l'emplacement d'exécution du service. hmm ... En y réfléchissant, y a-t-il un réglage sur une machine Linux (Ubuntu 11.04) qui doit être configuré pour permettre cela? –

+1

Vous pouvez essayer de mettre un outil comme nettool - http://sourceforge.net/projects/nettool/, entre votre programme client et le serveur pour voir ce qui se passe dans les deux sens, ou même quelque chose comme wireshark - http: //www.wireshark.org/, pour trouver toutes les demandes sortantes de votre machine pour savoir où exactement la demande va. –