无法访问WSDL

时间:2016-06-09 17:55:22

标签: java wsdl

你好我正在尝试用Java设置一个简单的WSDL程序,但我得到以下错误,任何建议?我是相当新的,这个程序是我的第一个。

谢谢,

package de.vs.webServices.clientSide;

import java.net.URL;
import java.util.Scanner;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import de.vs.webServices.serverSide.ZeichenketteInt;

public class ZeichenketteClient {

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

URL url = new URL("http://localhost:9999/vs/Zeichenkette?wsdl");

QName qname = new       QName("http://serverSide.webServices.vs.de/","ZeichenketteImplService");

Service service = Service.create(url, qname);

ZeichenketteInt zeichenketteInt = service.getPort(ZeichenketteInt.class);

Scanner sc = new Scanner(System.in);
int nr=0;
do {
    System.out.println("Waehlen Sie die Nummer eines Befehls oder 0 um das Programm zu beenden: ");
    System.out.println("1. Zeichen Doppeln");
    System.out.println("2. Zeichenkette Verdoppeln");
    System.out.println("3. ZeichenketteSpiegeln");
    System.out.println("4. ZeichenketteLange");
    nr = sc.nextInt();
    String zeichenkette = null;
    switch (nr) {
    case 1:
        System.out
                .println("Schreiben Sie die gewunschte Zeichenkette: ");
        zeichenkette = sc.next();
        System.out.println("Ergebnis: "
                + zeichenketteInt.zeichenDoppeln(zeichenkette));
        break;
    case 2:
        System.out
                .println("Schreiben Sie die gewunschte Zeichenkette: ");
        zeichenkette = sc.next();
        System.out.println("Ergebnis: "
                + zeichenketteInt.zeichenKetteVerdoppeln(zeichenkette));

        break;
    case 3:
        System.out
                .println("Schreiben Sie die gewunschte Zeichenkette: ");
        zeichenkette = sc.next();
        System.out.println("Ergebnis: "
                + zeichenketteInt.zeichenKetteSpiegeln(zeichenkette));
        break;
    case 4:
        System.out
                .println("Schreiben Sie die gewunschte Zeichenkette: ");
        zeichenkette = sc.next();
        System.out.println("Ergebnis: "
                + zeichenketteInt.zeichenKetteLange(zeichenkette));
        break;
    }
} while (nr!=0);
sc.close();

}}

这是我得到的错误:

        Exception in thread "main" javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://localhost:9999/vs/Zeichenkette?wsdl. It failed with: 
    Connection refused: connect.
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(Unknown Source)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
    at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
    at javax.xml.ws.Service.<init>(Unknown Source)
    at javax.xml.ws.Service.create(Unknown Source)
    at de.vs.webServices.clientSide.ZeichenketteClient.main(ZeichenketteClient.java:19)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.URL.openStream(Unknown Source)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(Unknown Source)
    at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(Unknown Source)
    ... 12 more

1 个答案:

答案 0 :(得分:1)

错误的一部分说:“拒绝:连接” 告诉你服务器(本例中为localhost)拒绝了你的连接请求。

我会检查URI:http://localhost:9999/vs/Zeichenkette?wsdl实际上是否返回了一个WSDL文档。只需在网络浏览器中打开它,看看你得到了什么。如果浏览器无法打开它,Java也不能。一旦浏览器打开它,Java应该没有问题(虽然偶尔发生浏览器读取它并且Java中的权限阻止你,这似乎不是这些情况之一)。

然后我建议确保服务器端口是开放的(IPTables,AV,这样的东西可以阻止它)。请注意,这可能不是您的问题,因为错误是读取WSDL。我正在展望WSDL加载之后。