package kyle; import java.net.URL; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Writer; import java.net.URL; import java.net.HttpURLConnection; import java.net.MalformedURLException; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import org.jboss.logging.Logger; public class Test { public static Logger log = Logger.getLogger(Test.class); public static void main(String[] args) throws Exception { if(args.length == 1 && args[0].equals("servlet")) { Test.invokeServlet(); } else { Test.test(); } } public static void invokeServlet() throws IOException, MalformedURLException { URL url = new URL("http://localhost:8080/jaxbBool/TestEndpoint"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); String xml = readXml(); Writer writer = new OutputStreamWriter(conn.getOutputStream()); writer.write(xml); writer.close(); log.info("HTTP " + conn.getResponseCode() + " response"); } private static String readXml() throws IOException { StringBuffer buffer = new StringBuffer(); InputStream is = Thread.currentThread().getContextClassLoader().getResource("request.xml").openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line = null; while((line = reader.readLine()) != null) { buffer.append(line + "\n"); } return buffer.toString(); } public static void test() throws JAXBException, IOException { JAXBContext jc = JAXBContext.newInstance(BooleanContainer.class); log.info("-------------------------------------------"); log.info("JAXB classloader: " + jc.getClass().getClassLoader()); log.info("Note: If the classloader is 'null', then that means it's the boot/JDK classloader"); log.info("-------------------------------------------"); Unmarshaller u = jc.createUnmarshaller(); URL xml = Thread.currentThread().getContextClassLoader().getResource("test.xml"); BooleanContainer bools = (BooleanContainer)u.unmarshal(xml.openStream()); printValues(bools); } public static void printValues(BooleanContainer bools) { log.info("bool1: " + bools.bool1); log.info("bool2: " + bools.bool2); log.info("bool3: " + bools.bool3); log.info("bool4: " + bools.bool4); log.info("bool5: " + bools.bool5); log.info("bool6: " + bools.bool6); log.info("bool7: " + bools.bool7); log.info("bool8: " + bools.bool8); log.info("bool9: " + bools.bool9); log.info("bool10: " + bools.bool10); log.info("bool11: " + bools.bool11); log.info("bool12: " + bools.bool12); log.info("-----"); } }