java - passare - wordpress https




DocumentBuilder.parse() lanciando java.net.UnknownHostException dopo aver modificato un URL del servizio Web da http a https (2)

Sembra che tu stia ancora provando a chiamare un servizio Web utilizzando lo stesso URL, ma questa volta con HTTPS nell'URL. In tal caso, potrebbe essere necessario richiamare il servizio Web utilizzando il codice client generato dal WSDL del servizio Web insieme al codice di autenticazione corretto.

Se si chiama il servizio Web utilizzando un codice client valido generato dal WSDL, fornire i dettagli del codice cliente nella domanda per vedere cosa esattamente sta tentando di fare qui.

In precedenza, avevamo il codice seguente nella nostra applicazione e veniva utilizzato per recuperare i dati richiesti. Abbiamo appena letto i campi richiesti formando un URL del servizio web passando nome utente, password e parametro di ricerca (numero DEA). Lo stesso URL (con parametri) potrebbe anche essere colpito direttamente dal browser per vedere i risultati:

 {    DocumentBuilderFactory factory = 
      DocumentBuilderFactory.newInstance();

      DocumentBuilder parser = factory.newDocumentBuilder();

      System.setProperty("http.proxyHost", getProxyHost());
      System.setProperty("http.proxyPort", getProxyPort());

      System.out.println("Before URL formation");

      URL url = new URL(
        "http://www.deanumber.com/Websvc/deaWebsvc.asmx/GetQuery?UserName=" + getDeaUsername() + "&Password=" + getDeaPassword() + "&DEA=" + 
        deaNumber + 
        "&BAC=&BASC=&ExpirationDate=&Company=&Zip=&State=&PI=&MaxRows=");

      System.out.println("After URL formation");
      System.out.println("URL formed is: "+url);
      Document document = null;
      try {

        System.out.println("toExternalForm");

        String strURL = url.toExternalForm();

        System.out.println("toExternalForm done: "+strURL);

        **document = parser.parse(strURL);** //This is causing exception
          }
      catch (SAXParseException spe)
         {  System.out.println("Inside SAXParseException");
            spe.printStackTrace();
         }
    }

Ora, l'URL del servizio web è cambiato da http a https con il resto delle stesse cose. Il nuovo URL funziona anche dal browser. Inoltre, anche se inserisco l'URL http nel browser, esso reindirizza automaticamente a https e mostra i dati. Tuttavia, il codice sopra non sta facendo lo stesso e ha dato la seguente eccezione: java.net.ProtocolException: Protocollo non supportato: https '

Così, ho cambiato il codice per utilizzare https nell'url, ma ora sta arrivando una nuova eccezione - java.net.UnknownHostException. Dal log della console, posso vedere che l'eccezione sta arrivando a ==> document = parser.parse (strURL) . Qui, parser è una variabile di riferimento per un oggetto DocumentBuilder come puoi vedere dal codice sopra. Sto incollando la traccia dello stack completa qui sotto.

Traccia stack completa per UnknownHostException:

{java.net.UnknownHostException: www.deanumber.com
[2017-23-28 08:23,     0]ERROR[[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'](DeaFetcher.java:123) - Exception in DeaFetcher.getDeaFromUrl java.net.UnknownHostException: www.deanumber.com
            at java.net.InetAddress.getAllByName0(InetAddress.java:1250)
            at java.net.InetAddress.getAllByName(InetAddress.java:1162)
            at java.net.InetAddress.getAllByName(InetAddress.java:1098)
            at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:265)
            at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:350)
            at weblogic.net.http.HttpsClient.New(HttpsClient.java:553)
            at weblogic.net.http.HttpsURLConnection.getHttpClient(HttpsURLConnection.java:332)
            at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:711)
            at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
            at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:643)
            at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
            at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
            at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
            at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)
            at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:163)
            at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:177)
            at com.company.project.service.DeaFetcher.fetchDeaFromUrl(DeaFetcher.java:358)
            at com.company.project.service.DeaFetcher.fetchDeas(DeaFetcher.java:330)
            at com.company.project.service.DeaFetcher.fetchDeas(DeaFetcher.java:239)
            at com.company.project.service.DeaFetcher.fetchDeaMastersList(DeaFetcher.java:46)
            at com.company.project.service.DeaFetcher$$FastClassByCGLIB$$8f6b7575.invoke(<generated>)
            at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
            at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:695)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
            at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
            at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:630)
            at com.company.project.service.DeaFetcher$$EnhancerByCGLIB$$a5bf2c5a.fetchDeaMastersList(<generated>)
            at com.company.project.web.MainFormController.onSubmit(EntryFormController.java:137)
            at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:267)
            at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:250)
            at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
            at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
            at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
            at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
            at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
            at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:751)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
            at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
            at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
            at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3432)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
            at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
            at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)
            at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)
            at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
            at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)
            at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
}





xml-parsing