如何在Netbeans中从WSDL创建SOAP WS Client(带有身份验证)

时间:2015-01-07 08:26:58

标签: java web-services soap netbeans wsdl

我必须创建一个Web服务客户端来使用netbeans中的Web服务。我有该Web服务的WSDL。我需要在客户端进行抢占式身份验证。这是我的客户端代码。

public static void main(String[] args) {
    // TODO code application logic here
            try
    {
    FidelioDto fd=G_jar.getInfoFidelioByND("212642098640");
    System.out.println(fd.getQualite()+" Get Qualite");
    System.out.println(fd.getCodeFidelio()+"Code Fielio");
    System.out.println(fd.getDateMaj()+" Get Date");
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

private static FidelioDto getInfoFidelioByND(java.lang.String nd) throws AppBusinessException_Exception {
    ma.iam.wsgold.ws.impl.FidelioWebServiceImplService service = new ma.iam.wsgold.ws.impl.FidelioWebServiceImplService();
    ma.iam.wsgold.ws.impl.FidelioWebServiceImpl port = service.getFidelioWebServiceImplPort();
    BindingProvider prov = ((BindingProvider)port); 
    prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "ivr_ebou_user");
    prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "ivr+2014");

    return port.getInfoFidelioByND(nd);
}

}

当我在服务器上部署此客户端时。我收到以下错误。

com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: j
ava.net.ConnectException: Connection timed out: connect
        at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.get
Output(HttpClientTransport.java:121)
        at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.proce
ss(HttpTransportPipe.java:142)
        at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.proce
ssRequest(HttpTransportPipe.java:83)
        at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processReques
t(DeferredTransportPipe.java:105)
        at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
        at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
        at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
        at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
        at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
        at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124
)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
dHandler.java:98)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
dHandler.java:78)
        at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
        at $Proxy30.getInfoFidelioByND(Unknown Source)

如何解决此问题,任何帮助

1 个答案:

答案 0 :(得分:0)

您可以阅读以下链接: https://netbeans.org/kb/docs/websvc/jax-ws.html

特别是,它提供了一个“消费Web服务”部分,您可以通过以下三种方式开发客户端: 1)您可以在Java SE应用程序中创建Java类; 2)您可以创建JSP文件; 3)你可以创建一个Servlet。

在成瘾中,它出现在这个链接: http://docs.oracle.com/cd/E17802_01/webservices/webservices/interop/reference/tutorials/doc/ClientSecurity3.html

您可以在其中查看如何配置身份验证等安全信息。

最后,您可以在此链接中阅读有关身份验证的variuos示例: http://docs.oracle.com/javaee/5/tutorial/doc/bncbx.html

我希望这个回复对你有用