Java 无法访问WSDL

Java 无法访问WSDL,java,wsdl,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.serv

您好,我正在尝试用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
线程“main”javax.xml.ws.WebServiceException中的异常:无法访问位于以下位置的WSDL:http://localhost:9999/vs/Zeichenkette?wsdl. 失败的原因是: 连接被拒绝:连接。 位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(未知源) 位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(未知源) 位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(未知源) 位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(未知源) 位于com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(未知源) 位于com.sun.xml.internal.ws.client.WSServiceDelegate。(来源未知) 位于com.sun.xml.internal.ws.client.WSServiceDelegate。(来源未知) 位于com.sun.xml.internal.ws.client.WSServiceDelegate。(来源未知) 位于com.sun.xml.internal.ws.client.WSServiceDelegate。(来源未知) 位于com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(未知源) 位于javax.xml.ws.Service。(未知源) 位于javax.xml.ws.Service.create(未知源) 位于de.vs.webServices.clientSide.ZeichenketteClient.main(ZeichenketteClient.java:19) 原因:java.net.ConnectException:连接被拒绝:连接 位于java.net.DualStackPlainSocketImpl.connect0(本机方法) 位于java.net.DualStackPlainSocketImpl.socketConnect(未知源) 位于java.net.AbstractPlainSocketImpl.doConnect(未知源) 位于java.net.AbstractPlainSocketImpl.connectToAddress(未知源) 位于java.net.AbstractPlainSocketImpl.connect(未知源) 位于java.net.PlainSocketImpl.connect(未知源) 位于java.net.socksocketimpl.connect(未知源) 位于java.net.Socket.connect(未知源) 位于java.net.Socket.connect(未知源) 位于sun.net.NetworkClient.doConnect(未知源) 位于sun.net.www.http.HttpClient.openServer(未知来源) 位于sun.net.www.http.HttpClient.openServer(未知来源) 在sun.net.www.http.HttpClient。(来源不明) 位于sun.net.www.http.HttpClient.New(未知来源) 位于sun.net.www.http.HttpClient.New(未知来源) 位于sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(未知源) 位于sun.net.www.protocol.http.HttpURLConnection.plainConnect0(未知源) 位于sun.net.www.protocol.http.HttpURLConnection.plainConnect(未知源) 位于sun.net.www.protocol.http.HttpURLConnection.connect(未知源) 位于sun.net.www.protocol.http.HttpURLConnection.getInputStream0(未知源) 位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知源) 位于java.net.URL.openStream(未知源) 位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(未知源) 位于com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(未知源) ... 还有12个
错误中显示“拒绝:连接”的部分 正在告诉您服务器(本例中为localhost)拒绝了您的连接请求

我会检查URI:是否实际返回了一个WSDL文档。只要在网络浏览器中打开它,看看你会得到什么。如果浏览器不能打开它,Java也不能。一旦浏览器打开它,Java应该不会有任何问题(尽管偶尔浏览器会很好地读取它,Java中的权限会阻止您,但这似乎不是那种情况)


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

错误中的“拒绝:连接”部分 正在告诉您服务器(本例中为localhost)拒绝了您的连接请求

我会检查URI:是否实际返回了一个WSDL文档。只要在网络浏览器中打开它,看看你会得到什么。如果浏览器不能打开它,Java也不能。一旦浏览器打开它,Java应该不会有任何问题(尽管偶尔浏览器会很好地读取它,Java中的权限会阻止您,但这似乎不是那种情况)


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

请检查服务,它可能没有在给定的详细信息上运行。请检查服务,它可能没有在给定的详细信息上运行。