When I attempt to run the following code, I get: JAXBException: org.xml.sax.SAXException: unable to marshal type "com.parasynthion.centurion.hibernate.entity.Testjaxb" as an element because it is missing an @XmlRootElement annotationnull
I have included the XSD, generated class from XJC, and the servlet code that is attempting to use it. The same class file, generated from the same XSD, with a standalone running class, works perfectly. I am running 4.0.4.CR2, but the same thing happens under 4.0.3SP1 Any help will be greatly appreciated. XSD: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlnss="http://www.w3.org/2001/XMLSchema" targetNamespace="com.parasynthion.centurion.hibernate.entity" elementFormDefault="qualified" xmlns="com.parasynthion.centurion.hibernate.entity" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="1.0"> <xs:element name="testjaxb"> <xs:complexType> <xs:sequence> <xs:element name="foo" type="xs:integer"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Generated Class: // // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b26-ea3 // See http://java.sun.com/xml/jaxb // Any modifications to this file will be lost upon recompilation of the source schema. // Generated on: 2006.04.20 at 05:18:40 PM MDT // package com.parasynthion.centurion.hibernate.entity; import java.math.BigInteger; import javax.xml.bind.annotation.AccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import com.parasynthion.centurion.hibernate.entity.Testjaxb; /** * Java class for testjaxb element declaration. * * The following schema fragment specifies the expected content contained within this class. * * * * * * * * * * * * * * * * */ @XmlAccessorType(AccessType.FIELD) @XmlType(name = "", propOrder = { "foo" }) @XmlRootElement(name = "testjaxb") public class Testjaxb { @XmlElement(namespace = "com.parasynthion.centurion.hibernate.entity") protected BigInteger foo; /** * Gets the value of the foo property. * * @return * possible object is * [EMAIL PROTECTED] BigInteger } * */ public BigInteger getFoo() { return foo; } /** * Sets the value of the foo property. * * @param value * allowed object is * [EMAIL PROTECTED] BigInteger } * */ public void setFoo(BigInteger value) { this.foo = value; } public boolean isSetFoo() { return (this.foo!= null); } } Servlet Code: package com.parasynthion.centurion.web; import java.io.*; import java.util.*; import java.math.*; import java.lang.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import javax.naming.*; import org.hibernate.*; import com.parasynthion.centurion.hibernate.entity.*; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; import javax.xml.bind.Marshaller; import javax.xml.bind.UnmarshalException; import javax.xml.bind.MarshalException; import javax.xml.bind.JAXBException; import javax.xml.validation.*; import org.xml.sax.*; import javax.xml.datatype.*; public class TestHibernateEventServlet extends HttpServlet { public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { PrintWriter out=response.getWriter(); response.setContentType("text/xml"); try { Testjaxb tj=new Testjaxb(); tj.setFoo(new BigInteger("1")); JAXBContext jaxbContext=JAXBContext.newInstance(com.parasynthion.centurion.hibernate.entity.Testjaxb.class); Marshaller marshaller=jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT ,new Boolean(true)); marshaller.marshal(tj,out); } catch(UnmarshalException ue) { sendError(out,ue,"UnmarshalException: "); ue.printStackTrace(); } catch(IllegalArgumentException iae) { iae.printStackTrace(); } catch(JAXBException jaxbe) { sendError(out,jaxbe,"JAXBException: "); jaxbe.printStackTrace(); } /*catch(NamingException ne) { ne.printStackTrace(); }*/ } private void sendError(PrintWriter out,Exception e,String message) { out.print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); out.print(""); out.print(""+message+""); out.print(""+e.getCause()+""); out.print("<exception-message>"+e.getMessage()+"</exception-message>"); out.print(""); } } View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3938561#3938561 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3938561 ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ JBoss-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jboss-user
