2012-10-16 5 views
3

Problème simple, mais je me suis cogné la tête toute la journée. Service Web JAX-WS, généré à partir d'un WSDL tiers. Le contenu est quelque chose comme ceci:Comment changer le contenu de package-info.java

@javax.xml.bind.annotation.XmlSchema(namespace = "http://foo.it/bar", 
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 
package it.foo.bar.webservice.generated; 

webservice fonctionne, la sortie produit est comme suit:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
<S:Body> 
    <response xmlns="it.foo.bar.bean"> 
    <result> 

problème est le client qui est en utilisant le service Web, a besoin de la réponse comme ceci:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
<S:Body> 
    <ns:response xmlns:ns="it.foo.bar.bean"> 
    <ns:result> 

Si j'ajoute manuellement à l'emballage-info les xmlns annotation:

@javax.xml.bind.annotation.XmlSchema(namespace = "http://foo.it/bar", xmlns = { 
@javax.xml.bind.annotation.XmlNs(namespaceURI = "it.foo.bar.bean", prefix = "sms") 
}, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 
package it.foo.bar.webservice.generated; 

La réponse est générée comme prévu. Existe-t-il un moyen d'obtenir le même résultat en utilisant seulement wsimport, ou une liaison jaxb ou autre? Je suis sûr qu'il y a une meilleure façon d'écraser le package-info.java à chaque fois.

Répondre

2

Ceci est un problème connu: http://java.net/jira/browse/JAXB-818

Ne hésitez pas à voter, commenter et/ou fournir un correctif.

+0

Merci, bon à savoir. Pensez-vous que ce plugin Maven pourrait être une solution de contournement décent? http://java.net/projects/jaxb2-commons/pages/Namespace-prefix – Carlo

+0

Oui, ça ressemble à une bonne solution de contournement, mais je ne l'ai pas encore essayé. – Puce

Questions connexes