Mam aplikację Java (nie aplet), która musi uzyskać dostęp do usługi sieci Web. Serwery proxy dla usługi sieciowej zostały wygenerowane za pomocą JAX-WS i wydają się działać dobrze. W jednym scenariuszu musi porozmawiać przez serwer proxy sieci Web (w rzeczywistości Squid 3.0), który jest ustawiony na wymaganie uwierzytelniania NTLM.Java 6 NTLM uwierzytelnianie proxy i HTTPS - czy ktoś ma go do pracy?
Działa w JRE 1.6.0_14 Sun'a, wszystko działa dobrze, aby uzyskać dostęp do adresów URL HTTP, bez konieczności wprowadzania jakichkolwiek zmian: wbudowany uwierzytelniacz NTLM uruchamia się i wszystko działa bezbłędnie. Jeśli jednak adres URL serwis internetowy jest URL HTTPS, rozmowa serwis internetowy nie głęboko wewnątrz kodu Sun:
com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.lang.NullPointerException
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:121)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:142)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(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(SyncMethodHandler.java:98)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
... our web service call ...
Caused by: java.lang.NullPointerException
at sun.net.www.protocol.http.NTLMAuthentication.setHeaders(NTLMAuthentication.java:175)
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1487)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:164)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:896)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:109)
... 16 more
Patrząc w bazie błędów Słońca obraca się kilka wyjątków w takich zajęciach, ale wszystkie z nich wydają się zostały naprawione. Czy ktoś ma coś takiego? Czy ktoś ma to do pracy?
Proszę podać również swój import? – itro