private static List<Object> createProviders() { JAXBElementProvider provider = new JAXBElementProvider(); provider.setUnmarshallAsJaxbElement(true); provider.setMarshallAsJaxbElement(true); List<Object> providers = new ArrayList<Object>(); providers.add(provider); return providers; } }
/** * Creates a custom JAX-RS JAXBElementProvider which can handle * generated JAXB clasess with no XmlRootElement annotation * @return providers */ private List<Object> createJAXRSProviders() { JAXBElementProvider provider = new JAXBElementProvider(); provider.setUnmarshallAsJaxbElement(true); provider.setMarshallAsJaxbElement(true); List<Object> providers = new ArrayList<Object>(); providers.add(provider); return providers; }
public void useCustomerServiceRest(String args[]) throws Exception { JAXBElementProvider provider = new JAXBElementProvider(); provider.setUnmarshallAsJaxbElement(true); provider.setMarshallAsJaxbElement(true);
jaxbProvider.setUnmarshallAsJaxbElement(true);
@Test public void testGetJAXBElementBookCollection() throws Exception { JAXBElementProvider<?> provider = new JAXBElementProvider<>(); provider.setMarshallAsJaxbElement(true); provider.setUnmarshallAsJaxbElement(true); BookStore store = JAXRSClientFactory.create("http://localhost:" + PORT, BookStore.class, Collections.singletonList(provider)); BookNoXmlRootElement b1 = new BookNoXmlRootElement("CXF in Action", 123L); BookNoXmlRootElement b2 = new BookNoXmlRootElement("CXF Rocks", 124L); List<JAXBElement<BookNoXmlRootElement>> books = new ArrayList<>(); books.add(new JAXBElement<BookNoXmlRootElement>(new QName("bookNoXmlRootElement"), BookNoXmlRootElement.class, b1)); books.add(new JAXBElement<BookNoXmlRootElement>(new QName("bookNoXmlRootElement"), BookNoXmlRootElement.class, b2)); List<JAXBElement<BookNoXmlRootElement>> books2 = store.getJAXBElementBookCollection(books); assertNotNull(books2); assertNotSame(books, books2); assertEquals(2, books2.size()); BookNoXmlRootElement b11 = books.get(0).getValue(); assertEquals(123L, b11.getId()); assertEquals("CXF in Action", b11.getName()); BookNoXmlRootElement b22 = books.get(1).getValue(); assertEquals(124L, b22.getId()); assertEquals("CXF Rocks", b22.getName()); }
@Test public void testPostPetStatusType() throws Exception { JAXBElementProvider<Object> p = new JAXBElementProvider<>(); p.setUnmarshallAsJaxbElement(true); WebClient wc = WebClient.create("http://localhost:" + PORT + "/webapp/pets/petstore/jaxb/statusType/", Collections.singletonList(p)); WebClient.getConfig(wc).getInInterceptors().add(new LoggingInInterceptor()); wc.accept("text/xml"); PetStore.PetStoreStatusType type = wc.get(PetStore.PetStoreStatusType.class); assertEquals(PetStore.CLOSED, type.getStatus()); } }
@Test public void testEchoGenericSuperBookCollectionProxy2XmlType() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2type"; JAXBElementProvider<Object> jaxbProvider = new JAXBElementProvider<>(); jaxbProvider.setMarshallAsJaxbElement(true); jaxbProvider.setUnmarshallAsJaxbElement(true); GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(jaxbProvider)); WebClient.client(proxy).type("application/xml").accept("application/xml"); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); List<SuperBook2> books = proxy.echoSuperBookTypeCollection(Collections.singletonList(new SuperBook2("Super", 124L, true))); assertEquals(124L, books.get(0).getId()); assertTrue(books.get(0).isSuperBook()); }
@Test public void testEchoGenericSuperBookCollectionProxy2Xml() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2"; JAXBElementProvider<Object> jaxbProvider = new JAXBElementProvider<>(); jaxbProvider.setMarshallAsJaxbElement(true); jaxbProvider.setUnmarshallAsJaxbElement(true); GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(jaxbProvider)); WebClient.client(proxy).type("application/xml").accept("application/xml"); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); List<SuperBook> books = proxy.echoSuperBookCollection(Collections.singletonList(new SuperBook("Super", 124L, true))); assertEquals(124L, books.get(0).getId()); assertTrue(books.get(0).isSuperBook()); }
@Test public void testEchoGenericSuperBookProxy2XmlType() throws Exception { String endpointAddress = "http://localhost:" + PORT + "/webapp/genericstore2type"; JAXBElementProvider<Object> jaxbProvider = new JAXBElementProvider<>(); jaxbProvider.setMarshallAsJaxbElement(true); jaxbProvider.setUnmarshallAsJaxbElement(true); GenericBookStoreSpring2 proxy = JAXRSClientFactory.create(endpointAddress, GenericBookStoreSpring2.class, Collections.singletonList(jaxbProvider)); WebClient.getConfig(proxy).getHttpConduit().getClient().setReceiveTimeout(1000000000L); WebClient.client(proxy).type("application/xml").accept("application/xml"); SuperBook2 book = proxy.echoSuperBookType(new SuperBook2("Super", 124L, true)); assertEquals(124L, book.getId()); assertTrue(book.isSuperBook()); }