Package org.jboss.ws.core.binding

Examples of org.jboss.ws.core.binding.AbstractDeserializerFactory


   }

   // Get the deserializer factory for a given javaType and xmlType
   private static AbstractDeserializerFactory getDeserializerFactory(TypeMappingImpl typeMapping, Class javaType, QName xmlType)
   {
      AbstractDeserializerFactory deserializerFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(javaType, xmlType);

      // The type mapping might contain a mapping for the array wrapper bean
      if (deserializerFactory == null && javaType.isArray())
      {
         Class arrayWrapperType = typeMapping.getJavaType(xmlType);
View Full Code Here


               log.debug("Deserialize fault: " + faultMetaData);
               QName xmlType = faultMetaData.getXmlType();
               Class<?> faultBeanClass = faultMetaData.getFaultBean();

               // Get the deserializer from the type mapping
               AbstractDeserializerFactory desFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(faultBeanClass, xmlType);
               if (desFactory == null)
                  throw new WebServiceException("Cannot obtain deserializer factory: xmlType=" + xmlType + ", javaType=" + faultBeanClass);

               // http://jira.jboss.org/jira/browse/JBWS-955
               // Cannot deserialize fault detail
               String prefix = deElement.getPrefix();
               if (prefix != null && prefix.length() > 0)
               {
                  String nsURI = deElement.getNamespaceURI();
                  if (nsURI.length() > 0 && deElement.getAttributeNS(Constants.NS_XMLNS, prefix).length() == 0)
                  {
                     try
                     {
                        deElement.addNamespaceDeclaration(prefix, nsURI);
                     }
                     catch (SOAPException e)
                     {
                        log.warn("Declaration of detail entry namespace failed", e);
                     }
                  }
               }

               // Try jaxb deserialization
               try
               {
                  Class[] types = opMetaData.getEndpointMetaData().getRegisteredTypes().toArray(new Class[0]);
                  serContext.setProperty(SerializationContextJAXWS.JAXB_CONTEXT_TYPES, types);

                  Source source = new DOMSource(deElement);
                  DeserializerSupport des = (DeserializerSupport)desFactory.getDeserializer();
                  Object faultBean = des.deserialize(xmlName, xmlType, source, serContext);

                  Exception serviceEx = faultMetaData.toServiceException(faultBean, soapFault.getFaultString());
                  faultEx.initCause(serviceEx);
               }
View Full Code Here

               log.debug("Deserialize fault: " + faultMetaData);
               QName xmlType = faultMetaData.getXmlType();
               Class<?> faultBeanClass = faultMetaData.getFaultBean();

               // Get the deserializer from the type mapping
               AbstractDeserializerFactory desFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(faultBeanClass, xmlType);
               if (desFactory == null)
                  throw new WebServiceException("Cannot obtain deserializer factory: xmlType=" + xmlType + ", javaType=" + faultBeanClass);

               // http://jira.jboss.org/jira/browse/JBWS-955
               // Cannot deserialize fault detail
               String prefix = deElement.getPrefix();
               if (prefix != null && prefix.length() > 0)
               {
                  String nsURI = deElement.getNamespaceURI();
                  if (nsURI.length() > 0 && deElement.getAttributeNS(Constants.NS_XMLNS, prefix).length() == 0)
                  {
                     try
                     {
                        deElement.addNamespaceDeclaration(prefix, nsURI);
                     }
                     catch (SOAPException e)
                     {
                        log.warn("Declaration of detail entry namespace failed", e);
                     }
                  }
               }

               // Try jaxb deserialization
               try
               {
                  Class[] types = opMetaData.getEndpointMetaData().getRegisteredTypes().toArray(new Class[0]);
                  serContext.setProperty(SerializationContextJAXWS.JAXB_CONTEXT_TYPES, types);

                  Source source = new DOMSource(deElement);
                  DeserializerSupport des = (DeserializerSupport)desFactory.getDeserializer();
                  Object faultBean = des.deserialize(xmlName, xmlType, source, serContext);

                  Exception serviceEx = faultMetaData.toServiceException(faultBean, soapFault.getFaultString());
                  faultEx.initCause(serviceEx);
               }
View Full Code Here

/*     */
/*  81 */       int[] arrDims = getDimensionsFromAttribute(soapElement);
/*  82 */       Object[] retArray = (Object[])(Object[])Array.newInstance(compJavaType, arrDims);
/*     */
/*  84 */       TypeMappingImpl typeMapping = serContext.getTypeMapping();
/*  85 */       AbstractDeserializerFactory compDeserializerFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(compJavaType, compXmlType);
/*  86 */       if (compDeserializerFactory == null)
/*     */       {
/*  88 */         log.warn("Cannot obtain component deserializer for: [javaType=" + compJavaType.getName() + ",xmlType=" + compXmlType + "]");
/*  89 */         compDeserializerFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(null, compXmlType);
/*     */       }
/*     */
/*  92 */       if (compDeserializerFactory == null) {
/*  93 */         throw new WSException("Cannot obtain component deserializer for: " + compXmlType);
/*     */       }
/*     */
/*  96 */       this.componentDeserializer = compDeserializerFactory.getDeserializer();
/*     */
/*  98 */       if ((arrDims.length < 1) || (2 < arrDims.length)) {
/*  99 */         throw new WSException("Unsupported array dimensions: " + Arrays.asList(new int[][] { arrDims }));
/*     */       }
/* 101 */       Iterator it = DOMUtils.getChildElements(soapElement);
View Full Code Here

/* 169 */     serContext.setJavaType(javaType);
/* 170 */     List registeredTypes = opMetaData.getEndpointMetaData().getRegisteredTypes();
/* 171 */     serContext.setProperty("org.jboss.ws.jaxb.context.types", registeredTypes.toArray(new Class[0]));
/*     */     Object obj;
/*     */     try { TypeMappingImpl typeMapping = serContext.getTypeMapping();
/* 177 */       AbstractDeserializerFactory deserializerFactory = getDeserializerFactory(typeMapping, javaType, xmlType);
/* 178 */       DeserializerSupport des = deserializerFactory.getDeserializer();
/*     */
/* 180 */       obj = des.deserialize(this.container, serContext);
/* 181 */       if (obj != null)
/*     */       {
/* 183 */         Class objType = obj.getClass();
View Full Code Here

/* 255 */     return obj;
/*     */   }
/*     */
/*     */   private static AbstractDeserializerFactory getDeserializerFactory(TypeMappingImpl typeMapping, Class javaType, QName xmlType)
/*     */   {
/* 261 */     AbstractDeserializerFactory deserializerFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(javaType, xmlType);
/*     */
/* 264 */     if ((deserializerFactory == null) && (javaType.isArray()))
/*     */     {
/* 266 */       Class arrayWrapperType = typeMapping.getJavaType(xmlType);
/* 267 */       if (arrayWrapperType != null)
View Full Code Here

/*     */         {
/*  93 */           log.debug("Deserialize fault: " + faultMetaData);
/*  94 */           QName xmlType = faultMetaData.getXmlType();
/*  95 */           Class faultBeanClass = faultMetaData.getFaultBean();
/*     */
/*  98 */           AbstractDeserializerFactory desFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(faultBeanClass, xmlType);
/*  99 */           if (desFactory == null) {
/* 100 */             throw new WebServiceException("Cannot obtain deserializer factory: xmlType=" + xmlType + ", javaType=" + faultBeanClass);
/*     */           }
/*     */
/* 104 */           String prefix = deElement.getPrefix();
/* 105 */           if ((prefix != null) && (prefix.length() > 0))
/*     */           {
/* 107 */             String nsURI = deElement.getNamespaceURI();
/* 108 */             if ((nsURI.length() > 0) && (deElement.getAttributeNS("http://www.w3.org/2000/xmlns/", prefix).length() == 0))
/*     */             {
/*     */               try
/*     */               {
/* 112 */                 deElement.addNamespaceDeclaration(prefix, nsURI);
/*     */               }
/*     */               catch (SOAPException e)
/*     */               {
/* 116 */                 log.warn("Declaration of detail entry namespace failed", e);
/*     */               }
/*     */             }
/*     */
/*     */           }
/*     */
/*     */           try
/*     */           {
/* 124 */             Class[] types = (Class[])opMetaData.getEndpointMetaData().getRegisteredTypes().toArray(new Class[0]);
/* 125 */             serContext.setProperty("org.jboss.ws.jaxb.context.types", types);
/*     */
/* 127 */             Source source = new DOMSource(deElement);
/* 128 */             DeserializerSupport des = desFactory.getDeserializer();
/* 129 */             Object faultBean = des.deserialize(xmlName, xmlType, source, serContext);
/*     */
/* 131 */             Exception serviceEx = faultMetaData.toServiceException(faultBean, soapFault.getFaultString());
/* 132 */             faultEx.initCause(serviceEx);
/*     */           }
View Full Code Here

/* 121 */           if (log.isDebugEnabled())
/* 122 */             log.debug("Deserialize fault: " + faultMetaData);
/* 123 */           QName xmlType = faultMetaData.getXmlType();
/* 124 */           Class javaType = faultMetaData.getJavaType();
/*     */
/* 127 */           AbstractDeserializerFactory desFactory = (AbstractDeserializerFactory)typeMapping.getDeserializer(javaType, xmlType);
/* 128 */           if (desFactory == null) {
/* 129 */             throw new JAXRPCException("Cannot obtain deserializer factory for: " + xmlType);
/*     */           }
/*     */
/*     */           try
/*     */           {
/* 136 */             String prefix = deName.getPrefix();
/* 137 */             if (prefix.length() > 0)
/*     */             {
/* 139 */               String nsURI = deName.getURI();
/* 140 */               String attrValue = deElement.getAttribute("xmlns:" + prefix);
/* 141 */               if ((nsURI.length() > 0) && (attrValue.length() == 0)) {
/* 142 */                 deElement.addNamespaceDeclaration(prefix, nsURI);
/*     */               }
/*     */             }
/* 145 */             Source xmlFragment = new DOMSource(deElement);
/* 146 */             DeserializerSupport des = desFactory.getDeserializer();
/* 147 */             Object userEx = des.deserialize(xmlName, xmlType, xmlFragment, serContext);
/* 148 */             if ((userEx == null) || (!(userEx instanceof Exception))) {
/* 149 */               throw new WSException("Invalid deserialization result: " + userEx);
/*     */             }
/* 151 */             faultEx.initCause((Exception)userEx);
View Full Code Here

TOP

Related Classes of org.jboss.ws.core.binding.AbstractDeserializerFactory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.