Je crée un service Web SOAP simple à l'aide d'annotations SLSB et JAX-WS . Les objets que je voudrais passer sont JAXB générés à partir de schémas OGC, merci pour le projet OGC sur java.net. Une méthode particulière avec laquelle j'ai des problèmes (qui provoque l'échec du déploiement) est une situation où un champ (eventTime) de l'objet de requête (GetResult) se trouve dans un package différent de l'objet de requête . ObjectFactory pour ce type est différent et est un problème lors du marshalling/unmarshalling.Spécification des packages JAXB dans SLSB et JAX-WS
Un sous-ensemble des erreurs que je reçois:
There's no ObjectFactory with an @XmlElementDecl for the element {http://www.opengis.net/ogc}temporalOps. this problem is related to the following location: at protected javax.xml.bind.JAXBElement net.opengis.sos.v_1_0_0.GetResult$EventTime.temporalOps at net.opengis.sos.v_1_0_0.GetResult$EventTime at protected java.util.List net.opengis.sos.v_1_0_0.GetResult.eventTime at net.opengis.sos.v_1_0_0.GetResult at public net.opengis.sos.v_1_0_0.GetResult net.opengis.sos.v_1_0_0.ObjectFactory.createGetResult() at net.opengis.sos.v_1_0_0.ObjectFactory
Dans une application standard SE, quand j'initialiser le JAXBContext comme ci-dessous, tout fonctionne bien.
JAXBContext context = JAXBContext.newInstance("net.opengis.sos.v_1_0_0:net.opengis.sensorml.v_1_0_1:net.opengis.sos.v_1_0_0.filter.v_1_1_0");
Comment définir les packages JAXB dans le contexte JAX-WS?
Mon application serveur/environnement est GF 3.1.
Merci pour l'aide!
Steve
[Ce blog] (http://weblogs.java.net/blog/kohlert/archive/2006/10/jaxws_and_type.html) indiquant que l'utilisation de @XmlSeeAlso sur la classe de service semble très prometteuse, mais elle ressemble n'a pas été adopté avant JAX-WS 2.2. Metro (via le projet JAX-RS RI) semble soutenir la spécification 2.2 ... mais je ne l'ai pas encore fonctionné. Essayer sur GF 3.0.1 ... peut-être qu'il n'a pas une version conforme de JAX-WS. Essayez plus tard ce soir. Pensées, quelqu'un? –
@XmlSeeAussi semblait être une bonne approche, mais n'a pas résolu le problème. J'ai été pointé vers @UsesJAXBContext, mais il semble que metro ait un [bug] (http://java.net/jira/browse/JAX_WS-270) dedans où il n'appelle pas le createJAXBContext() du JAXBContextFactory I créé, ouvert depuis plusieurs années. L'enquête continue ... –