NF-e - Alternar entre webservices em tempo de execução

Olá.
Estou trabalhando com a NF-e, já está funcionando blz, só um problema não consegui resolver.
Gostaria de alternar entre os webservices em tempo de execução.
No caso de homologação/produção, a solução (emergencial) foi criar dois projetos diferentes e compilar a aplicação com o projeto de homologação, e quando estava ok eu compilei com o projeto que continha o acesso ao webservice de produção para instalar no cliente.
Mas no caso de contigência (SCAN) não dá pra ser assim, pq o sistema precisa decidir, em caso de queda do SEFAZ, pelo acesso ao SCAN.
Mas não consigo resolver esse problema, tentei gerar as classes com o wsimport e indicar pacotes diferentes, depois utiliza-las com com Class.forname e getMethod (seria perfeito isso), mas dá um erro de “com.thoughtworks.xstream.io.StreamException: : Premature end of file.”. quando executa clazz.newInstance()

Class clazz = Class.forName(“br.com.nfe.ws.sp.homologacao.nfestatusservico.NfeStatusServicoSoap”);
Object instance = clazz.newInstance();

Para acessar o serviço “estáticamente” eu estou faço assim:
nfe.ws.sp.homologacao.nfestatusservico.NfeStatusServico service = new nfe.ws.sp.homologacao.nfestatusservico.NfeStatusServico();
service.getNfeStatusServicoSoap12().nfeStatusServicoNF(cabMsg, dadosMsg);

Ah, já procurei nos foruns e não encontrei nada que me ajudasse.

Alguem aí pode me dar uma dica de como alterar entre os webservices da NF-e ?
Qualquer ajuda é bem vinda.

Obrigado pela atenção.
Marcos

Tente fazer deste modo:

NfeStatusServicoLocator locator = new NfeStatusServicoLocator(); locator.setNfeStatusServicoSoap12EndpointAddress(address); NfeStatusServicoSoap soap = locator.getNfeStatusServicoSoap(); String result = soap.nfeStatusServicoNF(nfeCabecMsg, nfeDadosMsg);

Onde address é uma String contendo a url da receita. Aqui você pode alterar para homologação/produção/SCAN.

Atenciosamente,
Fernando Hirata Alexandre