400 Bad Request WS CTE (Conhecimento de Transporte Eletrônico)

Olá pessoal
estou com o problema de Bad Request quanto tento me comunicar com o webservice da Receita
se alguém poder me ajudar
segue o código

       System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
       Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); 
       System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
       System.setProperty("javax.net.ssl.keyStore", "Certificado.pfx");
       System.setProperty("javax.net.ssl.keyStorePassword", "***");
       System.setProperty("javax.net.ssl.trustStoreType", "JKS");
       System.setProperty("javax.net.ssl.trustStore", "nfe.keystore");
       System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

       URL url = new URL("https://homologacao.cte.sefaz.rs.gov.br/ws/ctestatusservico/CteStatusServico.asmx");

       String dados ="<consStatServCte xmlns=\"http://www.portalfiscal.inf.br/cte\" versao=\"1.03\">"+
                     "  <tpAmb>1</tpAmb>"+
                     "  <xServ>STATUS</xServ>"+
                     "  </consStatServCte>";

         String soap="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
                       "  <soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"+
                       "  <soap12:Header>"+
                       "  <cteCabecMsg xmlns=\"http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico\">"+
                       "   <cUF>42</cUF>"+
                       "   <versaoDados>1.03</versaoDados>"+//1.01
                       "  </cteCabecMsg>"+
                       "  </soap12:Header>"+
                       "  <soap12:Body>"+
                       "  <cteDadosMsg xmlns=\"http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico\">"+
                           dados+
                       "  </cteDadosMsg>"+
                       "</soap12:Body>"+
                       "</soap12:Envelope>";

	    System.out.println(soap);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.addRequestProperty("Request-Method", "POST");
            connection.addRequestProperty("Content-Type", "text/xml");
            connection.addRequestProperty("SOAPAction", "http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico/cteStatusServicoCT");
            connection.addRequestProperty("Content-Length", soap.length() + "");
            connection.setDoOutput(true);
            connection.setDoInput(true);
            OutputStream out = connection.getOutputStream();
            out.write(soap.getBytes());
            out.flush();
            connection.connect();
            if (connection.getResponseCode() == HttpURLConnection.HTTP_OK || connection.getResponseCode() == HttpURLConnection.HTTP_ACCEPTED) {
                BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                StringBuffer newData = new StringBuffer();
                String s = "";
                while (null != ((s = br.readLine()))) {
                    newData.append(s);
                }
                br.close();
                System.out.println(new String(newData));
            } else {
                System.out.println(connection.getResponseCode() + "/" + connection.getResponseMessage());
            }
            connection.disconnect();

Muito Obrigado