/** * Retrieves the status of the XML element (root or not). * * @param binding a bound element * @return true if element is an XML root element * @throws HostException if retrieving XML element name fails */ public boolean isXmlRootElement(final ICobolBinding binding) throws HostException { try { JAXBElementDescriptor descriptor = new JAXBElementDescriptor( getJaxbPackageName(binding), getJaxbTypeName(binding)); return descriptor.isXmlRootElement(); } catch (JAXBAnnotationException e) { throw new HostException(e); } }
/** * Retrieves the XML element name associated with a JAXB element. * * @param binding a bound element * @return the XML element name * @throws HostException if retrieving XML element name fails */ public String getXmlElementName(final ICobolBinding binding) throws HostException { try { JAXBElementDescriptor descriptor = new JAXBElementDescriptor( getJaxbPackageName(binding), getJaxbTypeName(binding)); return descriptor.getElementName(); } catch (JAXBAnnotationException e) { throw new HostException(e); } }
/** * @return a JAXBContext for request and response types * @throws WebServiceInvokerException if JABContext cannot be created */ private JAXBContext createJAXBContext() throws WebServiceInvokerException { try { if (getResponseElementDescriptor().getJaxbPackageName().compareTo( getRequestElementDescriptor().getJaxbPackageName()) == 0) { return JAXBContext.newInstance(getRequestElementDescriptor() .getObjectFactory().getClass()); } else { return JAXBContext.newInstance(getRequestElementDescriptor() .getObjectFactory().getClass(), getResponseElementDescriptor().getObjectFactory() .getClass()); } } catch (JAXBException e) { throw new WebServiceInvokerException(e); } }
if (getRequestElementDescriptor().isXmlRootElement()) { oResponse = _dispatcher.invoke(oRequest); } else { JAXBElement < ? > jeRequest = getJAXBElement( getRequestElementDescriptor().getObjectFactory(), getRequestElementDescriptor().getElementName(), oRequest); oResponse = _dispatcher.invoke(jeRequest); _log.debug("invokeDispatch returned " + oResponse); if (getResponseElementDescriptor().isXmlRootElement()) { return oResponse; } else {
mRequestElementDescriptor = new JAXBElementDescriptor( requestJaxbPackageName, requestJaxbType); mResponseElementDescriptor = new JAXBElementDescriptor( responseJaxbPackageName, responseJaxbType); _dispatcher = createDispatcher(); _log.debug("Wsdl port=" + getWsdlPortName()); _log.debug("Request element=[" + getRequestElementDescriptor().toString() + "]"); _log.debug("Response element=[" + getResponseElementDescriptor().toString() + "]");