1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import cards.*; import java.util.logging.*; import javax.xml.bind.*; import javax.xml.namespace.QName; import javax.xml.ws.*; import javax.xml.ws.soap.SOAPBinding; public class CardDeckSEJaxbDispatchClient { public static final String NS = "ns1" ; public static void main(String[] args) { Service svc = Service.create( new QName( URI, "CardDeckSessionBeanService" )); final QName portName = new QName(URI, "CardDeckSessionBeanPort" ); svc.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING, try { // cards is a package with JAXB classes Dispatch<Object> dispatch = svc.createDispatch(portName, JAXBContext.newInstance( "cards" ), Service.Mode.PAYLOAD); // objectfactory is generated by wsimport ObjectFactory of = new ObjectFactory(); // create deck CreateDeck createParam = of.createCreateDeck(); createParam.setArg0( 1 ); JAXBElement<CreateDeckResponse> createResponse = (JAXBElement<CreateDeckResponse>) dispatch. invoke(of.createCreateDeck(createParam)); int deckId = createResponse.getValue().getReturn(); System.out.println( "\nDeck ID = " + deckId); // getDeck GetDeck getParam = of.createGetDeck(); getParam.setArg0(deckId); JAXBElement<GetDeckResponse> getResponse = (JAXBElement<GetDeckResponse>) dispatch. invoke(of.createGetDeck(getParam)); StackType deck = getResponse.getValue().getReturn(); for (CardType card : deck.getCard()) { System.out.println( card.getRank() + " OF " + ( "JOKER" .equals(card.getRank()) ? card.getColor() : card.getSuit())); } // end for all cards in deck } catch (JAXBException ex) { Logger.getLogger(CardDeckSEJaxbDispatchClient. class .getName()). log(Level.SEVERE, null , ex); } // end catch } // end main } // end class |
2 February 2014
Creating a JAX-WS Dispatch client using JAXB
Labels:
DWS-4050-EE6,
java,
JAX-WS
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment