WebServices - Nome do método sem as iniciais do pacote

Java

11/12/2014

Prezados,

Tenho um web service que preciso que o método não contenha as iniciais do pacote. Estou utilizando JAX-WS e inicialmente, não tenho problemas na execução, porém, o XML enviado pelo Cliente, que propôs a integração, o método não possui o nome do pacote.

O xml enviado pelo cliente é da seguinte forma:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body>
  <operation>
    <operation xmlns="">
      <operationType>CREATE</operationType>
      <parameters>
	<NTL>3291944031</NTL>	
	<executionResult>SUCCESS</executionResult>
	<errorDescription>SUCCESS : 2014-12-10T15:29:32.0Z</errorDescription>
      </parameters>
    </operation>
    <globalResult xmlns="">SUCCESS</globalResult>
    <timeStamp xmlns="">2014-12-10T18:29:36.906Z</timeStamp>
  </operation>
</soapenv:Body>
</soapenv:Envelope>

O XML da minha aplicação, o método operation carrega o nome as iniciais do diretório do pacote, que no caso é xsd. Esse xml é o gerado pelo SoapUI. O exemplo abaixo funciona, porém, quando uso o exemplo acima, recebo Cannot find dispatch method for {}operation.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsd="http://cleartech.com.br/portability/xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <xsd:operation>
         <!--Optional:-->
         <operation>
            <operationType>?</operationType>
            <!--1 or more repetitions:-->
            <parameters>
               <NTL>?</NTL>
               <executionResult>?</executionResult>
               <errorDescription>?</errorDescription>
            </parameters>
         </operation>
         <globalResult>?</globalResult>
         <errorDescription>?</errorDescription>
         <timeStamp>?</timeStamp>
      </xsd:operation>
   </soapenv:Body>
</soapenv:Envelope>

Existe alguma forma de, na declaração do método, remover o nome do pacote com alguma anotação?

O código em questão é o seguinte:
package br.com.cleartech.portability.xsd;

import br.com.asc.lnp.ejb.TropicoPortOutLocal;
import br.com.asc.tropico.portout.OperationType;
import br.com.asc.tropico.portout.ResultValueType;
import javax.ejb.EJB;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.datatype.XMLGregorianCalendar;


@WebService(name = "AscLnpIntegrate", 
        serviceName = "AscLnpIntegrate", 
        targetNamespace = "http://cleartech.com.br/portability/xsd")

public class AscTropicoIntegration {
        
    @EJB
    private TropicoPortOutLocal ejbRef;

    public AscTropicoIntegration() { }
    
    @WebMethod(operationName = "operation")
    public ResultValueType getOperarion(@WebParam(name = "operation") OperationType operation, 
            @WebParam (name = "globalResult") ResultValueType resultValueType,
            @WebParam (name = "errorDescription") String errorDescription, 
            @WebParam (name = "timeStamp") XMLGregorianCalendar timeStamp) {
        
        return ejbRef.getOperarion(operation, resultValueType, errorDescription, timeStamp);
        
    }
    
}
Rodrigo Passos

Rodrigo Passos

Curtidas 0

Respostas

Clayton Duran

Clayton Duran

11/12/2014

Pode ser que a definição do endpoint não está correta.
GOSTEI 0
POSTAR