Problema com soap e jax ws

Estou tentando fazer uma integração com o seguinte webservice:

http://horusws.treinamento.saude.gov.br/horus-ws-service/HorusWSService/HorusWS?wsdl

Não tenho experiência com SOAP, gostaria de saber se estou fazendo da forma correta, e se sim, por qual motivo recebo o seguinte erro:

ADVERTÊNCIA: Sem partes do corpo exclusivas! Em uma porta, conforme BP 1.1 R2710, as operações devem ter assinatura de operação exclusiva na conexão para obter despacho com sucesso. Os métodos [consultarInconsistencias, consultarResultadoProcessamento] têm o mesmo bloco do corpo da solicitação {http://www.saude.gov.br/horus-ws/schemas/v1/HorusTypes}protocolo. O método de despacho pode falhar, o runtime tentará despachar usando SOAPAction. Outra opção é ativar o AddressingFeature para o runtime ativado identificar exclusivamente a operação do WSDL usando o cabeçalho wsa:Action. dez 15, 2017 10:48:28 AM com.sun.xml.ws.wsdl.PayloadQNameBasedOperationFinder ADVERTÊNCIA: Sem partes do corpo exclusivas! Em uma porta, conforme BP 1.1 R2710, as operações devem ter assinatura de operação exclusiva na conexão para obter despacho com sucesso. Os métodos [consultarInconsistencias, consultarResultadoProcessamento] têm o mesmo bloco do corpo da solicitação {http://www.saude.gov.br/horus-ws/schemas/v1/HorusTypes}protocolo. O método de despacho pode falhar, o runtime tentará despachar usando SOAPAction. Outra opção é ativar o AddressingFeature para o runtime ativado identificar exclusivamente a operação do WSDL usando o cabeçalho wsa:Action.

public static void main(String[] args) throws Exception {

URL url = new URL(WS_URL);
QName qname = new QName("http://www.saude.gov.br/horus-ws", "HorusWSService");

Service service = Service.create(url, qname);
HorusWSAsync horusWSAsync = service.getPort(HorusWSAsync.class);

Map<String, Object> req_ctx = ((BindingProvider) horusWSAsync).getRequestContext();
req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, WS_URL);

Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("Username", Collections.singletonList("alessandro@rangtecnologia.com.br"));
headers.put("Password", Collections.singletonList("xxxxx"));
req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);


ProtocoloType protocolo = new ProtocoloType();
protocolo.setDtRecebimento("31-10-2017 15:34:12");
protocolo.setNuProtocoloEntrada("17100000023000003132");
InconsistenciaProcessamentoLoteType inconsistencias = horusWSAsync.consultarInconsistencias(protocolo);
for (InconsistenciaProcessamentoLoteType.Inconsistencias in : inconsistencias.getInconsistencias()) {
    System.out.println("inconsistencia:" + in.getInconsistencia().mensagem);
}

}

Você conseguiu alguma coisa? estou tentando fazer a mesma integração.
Ja consegui usar o método de informarDispensação, mas os métodos consultarInconsistencias e consultarResultadoProcessamento pelo JAVA nao funciona de jeito nenhum, se eu pegar o xml gerado pelo java e jogar no SOAPUI ele funciona.

Acredito que a autenticação não seja feita como você está fazendo, na documentação fala para colocar no Header da requisição dessa forma:

headers.put(“Authorization”, Collections.singletonList(SUA_CHAVE));

A chave consiste na String "Basic " + Base64.getEncoder().encodeToString(“usuario:senha”);