2013-06-04 19 views
6

Ho molti endpoint annotati con @WebService(targetNamespace = "mynamespace"). Ogni @WebResult e @WebParam ha la stessa definizione di targetNamespace = "mynamespace".Come posso configurare lo spazio dei nomi di destinazione globalmente nei servizi web JAX-WS?

C'è un modo per configurare JAX-WS (implementazione Metro) per utilizzare "mynamespace" come targetNamespace per impostazione predefinita?

Vorrei utilizzare le annotazioni senza attributi e rimuovere le dichiarazioni duplicate, proprio come la convenzione sulla configurazione.

risposta

2

solo mettere il targetNamespace nel servizio di interfaccia endpoint o implementazione del servizio fagioli.

/** 
* Annotated Implementation Object 
*/ 
@WebService(
    name = "CustomerService", 
    targetNamespace = "http://org.company.services" 
) 
public class CustomerService { 
    @WebMethod 
    @WebResult(name="CustomerRecord") 
    public CustomerRecord locateCustomer(
     @WebParam(name="FirstName") String firstName, 
     @WebParam(name="LastName") String lastName, 
     @WebParam(name="Address") USAddress addr) { 
     ... 
    } 
}; 

Se @WebResult o @WebParam non hanno targetNamespace, il valore predefinito è la targetNamespace per il servizio Web.

In un'altra mano, è possibile evitare tutte le annotazioni e utilizzare solo lo @WebService se non è necessario qualcosa di personalizzato con JAX-B.

Tutte in JSR-181 Web Services Metadata for the JavaTM Platform

+6

Quando lascio il 'targetNamespace' a' @ WebResult' e al '@ WebParam' l'XML generato nella risposta SOAP ha uno spazio dei nomi per il tag XML più esterno (ad esempio' '), ma quelli interni utilizzano lo spazio dei nomi predefinito (ad esempio' '). Lo stesso accade ai parametri (' 'invece di' '). – timomeinen

+0

Si potrebbe pensare che l'esempio sopra funzionerebbe, ma sfortunatamente non gradisce le citazioni di tempo sopra. Perché una cosa così semplice non è facile da ottenere? Deve esserci un modo per non copiare e incollare costantemente questo spazio dei nomi su ogni singola annotazione WebParam e WebResult. – GreenieMeanie

Problemi correlati