Olá =D
Estou implementando um sistema de NFs-e aqui na minha região, com o schema da elotech.
Gerei os artefatos/classes apartir do WSDL dos caras, funga legal tanto o que foi gerado usando WSDL2Java (Axis 1.5) quanto o que foi gerado usando wsimport (Java puro).
Porem preciso alterar o cabeçalho de modo a incluir a assinatura (uma paulada de coisas) fique nesse formato:
Meu atual código usando o Axis 1.5 abaixo:
import classes.*;
import java.math.BigInteger;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.rpc.ServiceException;
import javax.xml.ws.BindingProvider;
import org.apache.ws.security.message.WSSecHeader;
public class SoapTest1
{
public static void main(String [] args){
//final WSSecHeader header = new WSSecHeader();
//header.insertSecurityHeader(document);
ConsultarLoteRpsEnvio consulta = new ConsultarLoteRpsEnvio();
TcIdentificacaoRequerente requerente = new TcIdentificacaoRequerente();
requerente.setHomologa(true);
requerente.setInscricaoMunicipal("123456");
requerente.setSenha("AAAAAA");
TcCpfCnpj cpf = new TcCpfCnpj();
cpf.setCpf("06852529908");
requerente.setCpfCnpj(cpf);
consulta.setIdentificacaoRequerente(requerente);
consulta.setNumeroLote(new org.apache.axis.types.NonNegativeInteger("123"));
NfsePortServiceLocator svc = new NfsePortServiceLocator();
NfsePort proxy= null;
try {
proxy = svc.getNfsePortSoap11();
} catch (ServiceException ex) {
Logger.getLogger(SoapTest1.class.getName()).log(Level.SEVERE, null, ex);
}
NfsePortSoap11Stub stub = (NfsePortSoap11Stub)proxy; // -> pelo stub consigo acesso a um vetor de headers (::getHeaders) por aqui, mas não consigo acesso ao envelope
try {
proxy.consultarLoteRps(consulta);
} catch (RemoteException ex) {
Logger.getLogger(SoapTest1.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Alguma ideia de como eu possa implementar a assinatura do screencap aí?
(PS: Os artefatos gerados pelo WSImport (usando @XmlAtribute e etc…) estão funcionando bem, e o método de conexão é bem parecido, porém também não faço ideia do que fazer pra gerar a assinatura e adicionar ao cabeçalho, já que é um rolo de annotations xD)
Obrigado =)