code: @SuppressWarnings("unchecked")
  	public <T> String serialize(T object) throws SerializationException {
  
  		if (object == null) {
  			return null;
  		}
  
  		ObjectMapper mapper = new ObjectMapper();
  		AnnotationIntrospector primary = new JacksonAnnotationIntrospector();
  		AnnotationIntrospector secondary = new JaxbAnnotationIntrospector();
  		AnnotationIntrospector pair = new AnnotationIntrospectorPair(primary, secondary);
  
  		mapper.setAnnotationIntrospector(pair);
  		mapper.setSerializationInclusion(Include.NON_NULL);
  
  		registerModulesForEnum(mapper);
  
  		SimpleModule testModule = new SimpleModule("BatchItemRequest", new Version(1, 0, 0, null));
  		testModule.addSerializer(BatchItemRequest.class, new BatchItemRequestSerializer());
  		mapper.registerModule(testModule);
  
  		String json = null;
  		try {
  			if(object instanceof TaxService)
  			{
  				json = mapper.writeValueAsString(((TaxService) object));
  			}
  			else
  			{
  			json = mapper.writeValueAsString(((JAXBElement<T>) object).getValue());
  			}
  		} catch (Exception e) {
  			LOG.error("Exception while json serialize", e);
  			throw new SerializationException(e);
  		}
  		return json;
  	}
docs: {@inheritDoc}