weblogic.net.http.SOAPHttpsURLConnection kann nicht umgewandelt werden, javax.net.ssl.HttpsURLConnection

Bin ich immer "java.lang.Classcastexception-Fehler" beim Versuch, eine Verbindung zu einer url mit Hilfe von javax.net.ssl.HttpsURLConnection .

Ich bin über die Weblogic Server 10.3.4.

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;



import java.security.cert.X509Certificate;


import java.io.BufferedReader;
import java.io.InputStreamReader;

import java.net.HttpURLConnection;
import java.net.URL;

/**
 * @author kmrgtm
 *
 */
public class GatewayConnect {


public void ConnectURL()
{
    try
    {

        System.out.println("***** Inside Class File *****");
    //Create a trust manager that does not validate certificate chains
    TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
            public void checkClientTrusted(X509Certificate[] certs, String authType) {
            }
            public void checkServerTrusted(X509Certificate[] certs, String authType) {
            }
        }
    };

    //Install the all-trusting trust manager
    SSLContext sc = SSLContext.getInstance("SSL");
    sc.init(null, trustAllCerts, new java.security.SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

    //Create all-trusting host name verifier
    HostnameVerifier allHostsValid = new HostnameVerifier() {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    };

    //Install the all-trusting host verifier
    HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);

    String urlstr="https://www.google.co.in";

    URL url = new URL(urlstr);

    HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();

    conn  = (HttpsURLConnection)url.openConnection();


        if (conn instanceof javax.net.ssl.HttpsURLConnection) {
        System.out.println("*** openConnection returns an instanceof javax.net.ssl.HttpsURLConnection");
        }
        if (conn instanceof HttpURLConnection) {
        System.out.println("*** openConnection returns an instnace of HttpURLConnection");
        }
    conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
    BufferedReader reader = null;
    reader = new BufferedReader(new InputStreamReader( conn.getInputStream()));
    for (String line; (line = reader.readLine()) != null;) {
        System.out.println("##### line iz :::"+line);
    }




}

catch(Exception e)
{
    e.printStackTrace();
}
}



}

Ausnahme, die ich erhalte ist :

**java.lang.ClassCastException: weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection
Inside the MessageSendingAction
***** Inside Class File *****
    at com.secureConnect.GatewayConnect.ConnectURL(GatewayConnect.java:68)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(Unknown Source)
    at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
    at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78)
    at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
    at javax.faces.component.UICommand.broadcast(UICommand.java:127)
    at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
    at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
    at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
    at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
    at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:183)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)**

Möglicher Grund für diese Fehlermeldung bekommen ?

  • Es gibt nicht viel Punkt, indem Sie Ihre 'instanceof' tests nach der Besetzung, und es gibt keine Punkt welcher Art auch immer, casting, um eine Klasse, die Sie nicht selbst nutzen. Nur verwenden Sie es als eine URLConnection.
  • 'instanceof' wurde für test-Zwecke nur. Casting-Fehler kommt bei dieser Zeile :: HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
  • Code einwandfrei läuft..hier ist die Ausgabe sebsauvage.net/paste/...
  • instanceof wurde für test Zwecke an der falschen Stelle, nach dem code, warf ClassCastException. Das ist mein Punkt. Und mein anderer Punkt ist, dass Sie brauchen nicht die Darsteller. Was passiert, wenn du es ausprobiert?
  • Ich bin mit Ecclipse und weblogic server 10.3.4. Wenn ich bin, es läuft als Java-Applikation läuft alles Gut. Aber WENN ich bin tring, um es auszuführen "Run on Server" , nur Dann ist es das werfen der Ausnahme "weblogic.net.http.SOAPHttpsURLConnection kann nicht umgewandelt werden, javax.net.ssl.HttpsURLConnection".
InformationsquelleAutor KmrGtm | 2013-08-29
Schreibe einen Kommentar