Erro na Consulta Status Serviço

Olá, tenho uma classe destinada a fazer a consulta de status serviço para o estado da Bahia, porém quando executo recebo o seguinte retorno:

<?xmlversion="1.0"encoding="utf-8"?><soap:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><soap:Code><soap:Value>soap:Sender</soap:Value></soap:Code><soap:Reason><soap:Textxml:lang="en">System.Web.Services.Protocols.SoapException:Unabletohandlerequestwithoutavalidactionparameter.Pleasesupplyavalidsoapaction.  
atSystem.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest()  
atSystem.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessagemessage)  
atSystem.Web.Services.Protocols.SoapServerProtocol.Initialize()  
atSystem.Web.Services.Protocols.ServerProtocol.SetContext(Typetype,HttpContextcontext,HttpRequestrequest,HttpResponseresponse)  
atSystem.Web.Services.Protocols.ServerProtocolFactory.Create(Typetype,HttpContextcontext,HttpRequestrequest,HttpResponseresponse,Boolean&abortProcessing)</soap:Text></soap:Reason><soap:Detail/></soap:Fault></soap:Body></soap:Envelope>  

Segue o código que estou utilizando:

import java.io.ByteArrayInputStream;  
import java.io.ByteArrayOutputStream;  
import java.io.IOException;  
import java.net.URL;  
import java.security.Security;  
import javax.xml.soap.MessageFactory;  
import javax.xml.soap.MimeHeaders;  
import javax.xml.soap.SOAPConnection;  
import javax.xml.soap.SOAPConnectionFactory;  
import javax.xml.soap.SOAPConstants;  
import javax.xml.soap.SOAPException;  
import javax.xml.soap.SOAPMessage;  
  
/** 
* 
* @author diego 
*/  
public class NFeTeste{  
  
    public static void main(String[] args) {  
                StringBuffer soapMessage = new StringBuffer();  
                 soapMessage.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>")  
                                        .append("<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\">")  
                                        .append("<soap12:Header>")  
                                        .append("<nfeCabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\">")  
                                        .append("<versaoDados>2.0</versaoDados>")  
                                        .append("<cUF>29</cUF>")  
                                        .append("</nfeCabecMsg>")  
                                        .append("</soap12:Header>")  
                                        .append("<soap12:Body>")  
                                        .append("<nfeDadosMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\">")  
                                        .append("<consStatServ versao=\"2.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.portalfiscal.inf.br/nfe\" xmlns=\"http://www.portalfiscal.inf.br/nfe\">")  
                                        .append("<versao>2.0</versao>")  
                                        .append("<tpAmb>2</tpAmb>")  
                                        .append("<cUF>29</cUF>")  
                                        .append("<xServ>STATUS</xServ>")  
                                        .append("</consStatServ>")  
                                        .append("</nfeDadosMsg>")  
                                        .append("</soap12:Body>")  
                        .append("</soap12:Envelope>");  
                         metodo2(soapMessage.toString(), "https://hnfe.sefaz.ba.gov.br/webservices/nfenw/NfeStatusServico2.asmx");  
            }  
  
             public static void metodo2(String envelope, String urlAddress) {  
  
                try {  
                    MessageFactory factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);  
                    SOAPMessage message;  
  
                    try {  
  
                        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", "C:\\keystore\\Postomimo.pfx");  
                        System.setProperty("javax.net.ssl.keyStorePassword", "123456");  
  
                        System.setProperty("javax.net.ssl.trustStoreType", "JKS");  
                        System.setProperty("javax.net.ssl.trustStore", "C:\\truststore.jks");  
  
  
                        MimeHeaders header = new MimeHeaders();  
                        header.addHeader("Content-Type", "application/soap+xml");  
  
                        message = factory.createMessage(header, new ByteArrayInputStream(envelope.getBytes()));  
                        SOAPConnection con = SOAPConnectionFactory.newInstance().createConnection();  
  
                        URL url = new URL(urlAddress);  
                        System.out.println("Message enviada \n"+message.toString());  
                        SOAPMessage res = con.call(message, url);  
  
                        ByteArrayOutputStream in = new ByteArrayOutputStream();  
                        message.writeTo(in);  
                        System.out.println("in :\n"+in.toString());  
  
                        ByteArrayOutputStream out = new ByteArrayOutputStream();  
                        res.writeTo(out);  
                        System.out.println("out :\n"+desnormalizar(out.toString()));  
  
                    } catch (IOException ex) {  
                        System.out.println("" + ex.getMessage());  
                        ex.printStackTrace();  
                    } finally {  
                    }  
                } catch (SOAPException ex) {  
                    System.out.println("" + ex.getMessage());  
                    ex.printStackTrace();  
                }  
            }  
  
  
        public static String desnormalizar(String texto) {  
            return texto.replace("<", "<").replace(">", ">").replace("''", "\"").replace(" ", "\r");  
        }  
}  

tenta montar o xml assim pra ver.

(&quot;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&gt;&quot;)
                .append(&quot;&lt;soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"")
                .append(" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"")
                .append(" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\"&gt;")
                .append("&lt;soap12:Header&gt;")
                .append("&lt;nfeCabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\"&gt;")
                .append("&lt;versaoDados&gt;2.0&lt;/versaoDados&gt;")
                .append("&lt;cUF&gt;50&lt;/cUF&gt;")
                .append("&lt;/nfeCabecMsg&gt;")
                .append("&lt;/soap12:Header&gt;")
                .append("&lt;soap12:Body&gt;")
                .append("&lt;nfeStatusServicoNF2 xmlns=\"http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2\"&gt;")
                .append("&lt;nfeDadosMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\"&gt;")
                .append("&lt;consStatServ xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\"&gt;")
                .append("&lt;tpAmb&gt;2&lt;/tpAmb&gt;")
                .append("&lt;cUF&gt;50&lt;/cUF&gt;")
                .append("&lt;xServ&gt;STATUS&lt;/xServ&gt;")
                .append("&lt;/consStatServ&gt;")
                .append("&lt;/nfeDadosMsg&gt;")
                .append("&lt;/nfeStatusServicoNF2&gt;")
                .append("&lt;/soap12:Body&gt;")
                .append("&lt;/soap12:Envelope&gt;");

Opa, obrigado pela atenção amigo, mas infelizmente o problema ainda continua…