blz, só te peço mais uma coisa, posta o conteúdo da Mensagem.java
Mensagem.java
package br.com.sisonco.ws.model.integracao;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="Mensagem")
@XmlAccessorType(XmlAccessType.FIELD)
public class Mensagem {
@XmlElement(name="motivoErro")
private MotivoErro motivoErro;
@XmlElement(name="sucesso")
private Sucesso sucesso;
@XmlElement(name="Cabecalho")
private Cabecalho Cabecalho;
@XmlElement(name="PedidoExame")
private PedidoExame PedidoExame;
@XmlElement(name="Paciente")
private Paciente paciente;
public MotivoErro getMotivoErro() {
return motivoErro;
}
public void setMotivoErro(MotivoErro motivoErro) {
this.motivoErro = motivoErro;
}
public Sucesso getSucesso() {
return sucesso;
}
public void setSucesso(Sucesso sucesso) {
this.sucesso = sucesso;
}
public Cabecalho getCabecalho() {
return Cabecalho;
}
public void setCabecalho(Cabecalho cabecalho) {
Cabecalho = cabecalho;
}
public PedidoExame getPedidoExame() {
return PedidoExame;
}
public void setPedidoExame(PedidoExame pedidoExame) {
PedidoExame = pedidoExame;
}
public Paciente getPaciente() {
return paciente;
}
public void setPaciente(Paciente paciente) {
this.paciente = paciente;
}
@Override
public String toString() {
return "Mensagem [Cabecalho=" + Cabecalho + ", PedidoExame="
+ PedidoExame + "]";
}
}
XMLRequestWS.txt (6.8 KB)
Anexei também aqui o XML de exemplo que a empresa proprietária do WS terceiro me passou para usar como teste. Com esse XML acima eu realizo requisições pelo SOAPUi normalmente.
Estranhei esse monte de < na mensagem SOAP que está chegando no Wildfly.
Obrigado.
é por algum motivo a validação não foi desativada, pode ver pelo log, mas todo erro é a namespace que ele quer e não veio, faz assim:
no pacote que tem essa classe Mesagem.java cria uma outra classe package-info.java, segue ex:
// note que deixei a namespace vazia
@XmlSchema(namespace = "", elementFormDefault = XmlNsForm.QUALIFIED)
package br.com.your_project.ws.xml;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
outro teste é adicionar a mensagem soap um atributo xmlsn ex:
@XmlAttribute
private String xmlns = “http://webservice.ws.sisonco.com.br/”
Criei o package-info.java mas ainda continua dando o mesmo erro.
Esse código serve exatamente para que?
Esse último teste do @XmlAttribute, desculpe, mas eu não entendi.
Obrigado.
Ola @reginaldolribeiro,
este último teste eu pensei em mapear a namespace no bean, mas o fato é que esta estranho mesmo o xml que entra, veja:
dentro do solicitarExameLIS tem uma tag arg0
provavelmente não esteja vindo no padrão mesmo, porém era legal ver o debug com ele fica tudo mais facil.
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Body xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<solicitarExameLIS xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<arg0 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="soapenc:string">
<?xml version="1.0" encoding="ISO-8859-1"?>
<Mensagem>
<Cabecalho>
Ola @aix,
Em relação a tag arg0, provavelmente é o parâmetro pedidoExame que o método solicitarExameLIS recebe, no caso o XML com as informações de integração.
No webservice terceiro eu configuro apenas a URL do webservice e o nome do método (solicitarExameLIS), não tem um local para que eu configure o nome do parâmetro, provavelmente por isso está vindo como arg0.
Tentei modificar o nome do parâmetro com @WebParam para arg0 apenas como teste, nada mudou.
@WebService()
@SchemaValidation(type = SchemaValidation.SchemaValidationType.IN)
@HandlerChain(file = "/handler.xml")
public class SisoncoLabWS {
@WebMethod
public String solicitarExameLIS(@WebParam(name = "arg0") String arg0) {
// código omitido
}
}
O estranho é que se faço um Webservice com o Tomcat, consigo receber as informações do XML sem problemas. Porque será que isso acontece?
No debug padrão do Eclipse eu não consigo ver nada além das informações que te mandei. Tem algo a mais que eu possa habilitar para ter mais detalhes, algum outro log, debug, etc?
Obrigado
Em um servidor de aplicações full JavaEE é diferente mesmo, no meu ver o único problema é esse que a mensagem chega diferente do que ele espera, eu uso aqui e trabalha bem, mas eu especifico tudo, ex:
Interface
@WebService(name = "InutilizacaoNfe", targetNamespace = "http://empresa.com.br/")
public interface InutilizacaoWS {
@WebMethod(operationName = "InutilizaNrNfe")
@WebResult(name = "InutilizaNrNfeResponse")
List<InutilizacaoResponse> inutilizaNrNfe(@WebParam(name = "request") List<InutilizacaoRequest> request);
@Stateless
@WebService(serviceName = "InutilizacaoNfe", portName = "inutilizacaoNfePort", targetNamespace = "http://empresa.com.br/", endpointInterface = "br.com.empresamigrador.ws.InutilizacaoWS", wsdlLocation = "/META-INF/InutilizacaoWSImpl.wsdl")
@HandlerChain(file = "/handler.xml")
@SchemaValidation(type = SchemaValidation.SchemaValidationType.IN)
public class InutilizacaoWSImpl implements InutilizacaoWS {
Mas eu sei que meu contexto é diferente do seu, eu deixo as validações ativas la no standlaone, meus objetos são mapeados conforme o contrato(WSDL), como é simples o que deseja mas tarde vou fazer um teste no meu PC, assim como você faz, depois volto para compartilhar.