Help in Java XML Binding (JAXB)
Looking for a JAVA written program that will provide interface to complex XML files using JAXB.
Requirement : JAVA progam will report on existing XML using a simple GUI that will run on Windows. Program should be able to be emailed and installed with all components including XML files and schema. Purpose of this program is twofold.
Sir,
It is bad to expect people to solve assignments for you. Would you elaborate on where you are stuck?
Similar Messages
-
TYLAR Java/XML binding technology
In WL10, when using the default TYLAR Java/XML data bindings for our web service implementation, is there a way to get the XML that was used to produce an instance of the TYLAR-generated object? I would assume WebLogic exposes an API that I could use to accomplish this. Thanks.
AFAIK, Tylar binding is for internal used (implement JAX-RPC 1.1 specification). If you want to handle Xml Databinding, you should try XmlBeans or JAXB in JAXWS.
-LJ -
I Downloaded the JavaXMLPack-summer-02_01 and am a little unsure about configuration and use...
The documentation says:"
To use the Java XML Pack technologies, you need to set the home directory for each technology as follows:
JAVA_XML_PACK_HOME to the directory where the java xml pack has been installed.
JAXM_HOME to <JAVA_XML_PACK_INSTALL>/java_xml_pack-summer-02_01/jaxm-1.1_01
JAXP_HOME to <JAVA_XML_PACK_INSTALL>/java_xml_pack-summer-02_01/jaxp-1.2_01
JAXR_HOME to <JAVA_XML_PACK_INSTALL>/java_xml_pack-ummer-02_01/jaxr-1.0_02
JAXRPC_HOME to <JAVA_XML_PACK_INSTALL>/java_xml_pack-ummer-02_01/jaxrpc-1.0_01
but nothing about where to set this...
I tried to set those as environment variables- s�that right???
Next thing:
When I want to use the JAXM Libraries I have to set the .JAR Files as Classpath - Seems strage to me...
And now the Problem:
I compiled the StandeAlone.java Sample from "/jaxm-1.1_01/samples/standalone"
And when I start the class File I get the Error message
java.lang.NoClassDefFoundError: javax/xml/soap/SOAPBody
at DataExchange.<init>(EOS.java:67)
at EOS.init(EOS.java:14)
at sun.applet.AppletPanel.run(AppletPanel.java:341)
at java.lang.Thread.run(Thread.java:536)I have been having similar problems. I have set the variables you mentioned in my .bashrc file and set the classpath variable to include them. However the compiler still can't find them and I get a slew of NoClassDefFoundError exceptions when trying to compile code which uses the xml stuff.
The strange thing is that the classpath variable was empty before I added the java xml stuff to it so I don't know how it finds the core java classes. It gets this information from somewhere and if I could find out where this is then I could add the xml stuff to it and everything will be fine.
Any ideas on where java is getting the location of the core classes from? -
Query on XML Beans replacing Castor Java -XML Bindings
Hello,
We use Castor XML Framework for today Java - XML bindings and were looking for XML Beans replacement.
One of the key problems we face in using XML (maybe a flawed design) is we create XSD for our applications and run Castor to generate Java Classes as Libraries (XMLFramework.jar).
Applications are compiled with these Java libraries and Castor is used to Marshal the Java Object as XML Document when invoking a remote API and at the receiving side it is used to unmarshal back the XML document to Java Object.
Major issues we have seen is that if any XSD (that defines application ICD) changes, we need to re-generate Castor Java classes (new XMLFramework.jar) and re-compile applications that were using these classes with new JAR files..... Thus for small XSD changes the impact is in lot of applications (where an application is an EAR deployed on WLS)
Does XMLBeans help here that I can change XSD without changing all the end-points that use Classes generated out of these XSDs (when additing mandatory or optinal elements) ?
Or there is a flaw in which we have used the Java-XML binding framework like Castor and XMLBeans do not help much ?Can someone please suggest on how I can go about
converting an XML file into word format using Java
?How about POI? -
Confusion on choosing the right Java XML tehcnology
Hi there,
I have a question about Java XML. I am still confuse on whether should I choose JAXP or JAXB for XML documents processing. I need to access a the configuration values form a properties file which stored in XML format to startup an application server, the configuration values might be using while the application server is running all the time. And probably write a tool to add/delete/modify the config values in XML file. From my point of view, I think JAXB is suitable for my needs, but I'm not sure whether the DOM tree manipulation from JAXP will be useful in my application or not. Any suggestion?
Thanks,
JaxYou might want to have a look at the tutorials here:
http://java.sun.com/webservices/docs/1.1/tutorial/doc/index.html
When you go to the page about JAXP you will see that it says, right up front, "The Java API for XML Processing (JAXP) makes it easy to process XML data using applications written in the Java programming language." That sounds like what you want to do. And the page about JAXB says "The Java Architecture for XML Binding (JAXB) is a Java technology that enables you to generate Java classes from XML schemas." That doesn't sound like what you want to do. -
I am trying to use jaxb with Weblogic 6.1. I kept both the jaxb jar file in weblogic
classpath in setEnv script. I am getting the following error, when I am trying
to use jaxb
java.lang.NoClassDefFoundError: javax/xml/bind/MarshallableRootElement
I tried other options also like coping both jar file in jre/ext dir but then I
got security error.
I will appreciate if someone in this newsgroup comments or suugest some solution.
Thanks
JeewanOn 06 Aug 2002, Jeewan wrote:
>
I am trying to use jaxb with Weblogic 6.1. I kept both the jaxb jar
file in weblogic classpath in setEnv script. I am getting the
following error, when I am trying to use jaxb
java.lang.NoClassDefFoundError: javax/xml/bind/MarshallableRootElement
I tried other options also like coping both jar file in jre/ext dir
but then I got security error.
I will appreciate if someone in this newsgroup comments or suugest
some solution. Put the jaxb jar file in in your webapp's WEB-INF/lib directory and it
should work fine.
Barry -
Java Mapping Using JAXB [Java Arch for XML Binding]
Hi All,
Anyone tried using JAXB [Java Architecture for XML Binding API available with Java WebServices Pack] technique for XML processing in Java Mapping??
I am facing the following problems..
1. I am not able to generate namespace while marshalling target XML [In standalone mode and not tried in XI].
2. What are the jar files we need to import?
I tried importing the following jar files in XI.
jaxb-api.jar,jaxb-impl.jar,jaxb-libs.jar,jax-qname.jar,namespace.jar,relaxngDatatype.jar
and getting some errors while importing these files in XI.
3. It throws error at runtime [Interface Mapping-Test Tab]
like Resource not found:javax/xml/bind/Messages_en.properties,javax/xml/bind/Messages_en_US.properties
4. Even after creating a copy of available file Messages.Properties with name: Messages_en.properties and Messages_en_US.properties.. it is not generating any messages in Target message tab
Thanks in Advance,
Ananth ChinnarajSravya ,
I have searched wide and far for this, but no success.
A lot on JAXB XI and Webdynpro, but nothing on JAXB, XI and mappings.
Could you please post the url here ?
Thanks and kind regards,
Jan -
Hi,
I am getting null pointer exception , i dont whether it is due to jar mismatch or what ???
I have a stand alone application which created java classes from one schema file and , i construct xml file by
inputting some values. It works fine in my machine. But when i deploy it our product which has tomcat6 it
gives the following exception.
ava.lang.NullPointerException
at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.calcXmlName(PropertyInfoImpl.java:287)
at com.sun.xml.bind.v2.model.impl.PropertyInfoImpl.calcXmlName(PropertyInfoImpl.java:260)
at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl.getTypes(ElementPropertyInfoImpl.java:100)
at com.sun.xml.bind.v2.model.impl.RuntimeElementPropertyInfoImpl.getTypes(RuntimeElementPropertyInfoImpl.java:50)
at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl$1.size(ElementPropertyInfoImpl.java:42)
at java.util.AbstractList$Itr.hasNext(AbstractList.java:341)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:139)
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:49)
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:41)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189)
at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:204)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl$1.run(JAXBContextImpl.java:343)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl$1.run(JAXBContextImpl.java:340)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:340)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:204)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:76)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:589)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:210)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:381)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
at com.facetime.rtgsm.extractor.GenerateXml.GenerateXmlForSkypeManagementOnly(Unknown Source)
at com.facetime.rtgsm.extractor.JDBCToXML.getXmlStringForModalities(Unknown Source)
at com.facetime.rtgsm.publisher.MessagePublisherClient.sendMessage(Unknown Source)
at com.facetime.rtgsm.publisher.MessagePublisherJob.execute(Unknown Source)
at org.quartz.core.JobRunShell.run(JobRunShell.java:191)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:516)
Any help would be be grately appreciated :)Check whether jaxb-ri.jar is there in your class path
-
Problem with JAXB Unmarshall - javax.xml.bind.UnmarshalException
Hi,
I'm getting an expection while unmarshalling using JAXB. The error is as follows :
DefaultValidationEventHandler: [ERROR]: unexpected element (uri:"http://www.etrade.com/ee/systemdomainao/search", local:"Context_Id"). Expected elements are <{}contextId>,<{}predicateInterceptor>,<{}isDefaultsearch>,<{}implicitContextSQL>,<{}contextName>,<{}searchId>,<{}implicitContextText>
I've generated JAXB classes using xjc command from my schema. The root element is Search object which has a List of Searchcontext and Columlist object. When I'm trying to unmarshall the XML, I'm getting the above exception. What is baffling, if I comment out the <tns:SearchContext> entry from the XML, unmarshall doesn't throw any exception and populates the columnlist properly. Columnlist and Searchcontext have little difference except that columnlist contains more elements.
Here'e the unmarshall code,
URL metadataURL = this.getClass().getClassLoader().getResource("metadata/search/PARTICIPANT.xml");
JAXBContext jc = JAXBContext.newInstance("com.etrade.ee.systemdomainao.search.domain");
Unmarshaller unmarshaller = jc.createUnmarshaller();
unmarshaller.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());
Search search = (Search)unmarshaller.unmarshal(metadataURL);
Any pointers will be highly appreciated.
ThanksXSD :
XSD :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.etrade.com/ee/systemdomainao/search" targetNamespace="http://www.etrade.com/ee/systemdomainao/search" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- Searchcontext type definition -->
<xs:complexType name="Searchcontext">
<xs:sequence>
<xs:element name="Context_Id" type="xs:int"/>
<xs:element name="Search_Id" type="xs:string"/>
<xs:element name="Context_Name" type="xs:string"/>
<xs:element name="Implicit_Context_SQL" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="500"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Implicit_Context_Text" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="500"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Is_Defaultsearch" type="xs:boolean" nillable="true"/>
<xs:element name="Predicate_Interceptor" type="xs:string" nillable="true"/>
</xs:sequence>
</xs:complexType>
<!-- Searchlist type definition -->
<xs:complexType name="Columnlist">
<xs:sequence>
<xs:element name="Columnlist_Id" type="xs:int"/>
<xs:element name="Search_Id" type="xs:string"/>
<xs:element name="Is_Quicksearchable" type="xs:boolean" nillable="true"/>
<xs:element name="Is_Advancesearchable" type="xs:boolean" nillable="true"/>
<xs:element name="Is_Quicksearchview" type="xs:boolean" nillable="true"/>
<xs:element name="Is_Fullview" type="xs:boolean" nillable="true"/>
<xs:element name="Is_Sortable" type="xs:boolean" nillable="true"/>
<xs:element name="Is_Defaultsort" type="xs:boolean" nillable="true"/>
<xs:element name="Default_SortOrder" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="Display_Order" type="xs:int" nillable="true"/>
<xs:element name="Default_Value" type="xs:string" nillable="true" maxOccurs="6"/>
<xs:element name="Default_Operator" type="xs:string" nillable="true"/>
<xs:element name="Is_Closedset" type="xs:boolean"/>
<xs:element name="Closedset_List_Name" type="xs:string" nillable="true"/>
<xs:element name="Is_RelatedMenu" type="xs:boolean" minOccurs="0"/>
<xs:element name="Column_Name" type="xs:string"/>
<xs:element name="Display_Name" type="xs:string"/>
<xs:element name="Is_UDF" type="xs:boolean" nillable="true"/>
<xs:element name="Table_Name" type="xs:string"/>
<xs:element name="Data_Type" type="xs:string"/>
<xs:element name="Column_Size" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<!-- Search declaration -->
<xs:element name="Search">
<!--<choice>
<xs:interface name="java.io.Serializable" />
</choice>-->
<xs:complexType>
<xs:sequence>
<xs:element name="Search_Id" type="xs:string"/>
<xs:element name="Schema_Set">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SearchContext" type="tns:Searchcontext" maxOccurs="unbounded"/>
<xs:element name="ColumnList" type="tns:Columnlist" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:key name="Search_PrimaryKey_1">
<xs:selector xpath="."/>
<xs:field xpath="tns:Search_Id"/>
</xs:key>
<xs:keyref name="Searchcontext_ForeignKey_1" refer="tns:Search_PrimaryKey_1">
<xs:selector xpath=".//tns:SearchContext"/>
<xs:field xpath="tns:Search_Id"/>
</xs:keyref>
<xs:keyref name="Columnlist_ForeignKey_2" refer="tns:Search_PrimaryKey_1">
<xs:selector xpath=".//tns:ColumnList"/>
<xs:field xpath="tns:Search_Id"/>
</xs:keyref>
<xs:key name="Searchcontext_PrimaryKey_1">
<xs:selector xpath=".//tns:SearchContext"/>
<xs:field xpath="tns:Context_Id"/>
</xs:key>
<xs:key name="Columnlist_PrimaryKey_1">
<xs:selector xpath=".//tns:ColumnList"/>
<xs:field xpath="tns:Columnlist_Id"/>
</xs:key>
</xs:element>
</xs:schema> -
Object-XML Binding: How do I map from java to enumerated xml tags
Hi. I'm new to Object-XML binding and toplink. XML that I'm trying to model in a schema has enumerated elements, e.g. </module_0></module_1><module_n> instead of many </module> elements. To simplify the schema I've opted to use </module> anyway with unbounded cardinality and imported this into a new project.
What I would like to know is if I can use Toplink to map the java object back to the enumerate element types and vice versa?
Thanks for your help.
GeePeeHi Geepee,
Below is an approach you can use if you have a fixed number of moduleX elements. In the example below X=3.
Assume a 2 object model Root & Module, where Root has a list of Module instances:
@XmlRootElement(name="root")
public class Root {
private List<Module> module = new ArrayList<Module>(3);
...// Accessors omitted
}It is currently not possible to map the items in the module list to the XML elements (module1-module3), but it would be possbile to map an object (see below) with 3 properties to those XML elements:
public class AdaptedModuleList {
private Module module1;
private Module module2;
private Module module3;
...// Accessors omitted
}What is required is a means to convert the unmappable object to a mappable one. This is done using a Converter:
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.mappings.converters.Converter;
import org.eclipse.persistence.sessions.Session;
public class ModuleListConverter implements Converter {
public void initialize(DatabaseMapping mapping, Session session) {}
public Object convertDataValueToObjectValue(Object dataValue, Session session) {
AdaptedModuleList adaptedModuleList = (AdaptedModuleList) dataValue;
if(null == adaptedModuleList) {
return null;
List<Module> moduleList = new ArrayList<Module>(3);
moduleList.add(adaptedModuleList.getModule1());
moduleList.add(adaptedModuleList.getModule2());
moduleList.add(adaptedModuleList.getModule3());
return moduleList;
public Object convertObjectValueToDataValue(Object objectValue, Session session) {
List<Module> moduleList = (List<Module>) objectValue;
if(null == moduleList) {
return null;
AdaptedModuleList adaptedModuleList = new AdaptedModuleList();
int moduleListSize = moduleList.size();
if(moduleListSize > 0) {
adaptedModuleList.setModule1(moduleList.get(0));
if(moduleListSize > 1) {
adaptedModuleList.setModule2(moduleList.get(1));
if(moduleListSize > 2) {
adaptedModuleList.setModule3(moduleList.get(2));
return adaptedModuleList;
public boolean isMutable() {
return true;
}The converter is added to the mapping metadata through the use of a Customizer:
import org.eclipse.persistence.config.DescriptorCustomizer;
import org.eclipse.persistence.descriptors.ClassDescriptor;
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
public class RootCustomizer implements DescriptorCustomizer {
public void customize(ClassDescriptor descriptor) throws Exception {
XMLCompositeCollectionMapping originalModuleMapping = (XMLCompositeCollectionMapping) descriptor.removeMappingForAttributeName("module");
XMLCompositeObjectMapping newModuleMapping = new XMLCompositeObjectMapping();
newModuleMapping.setAttributeName(originalModuleMapping.getAttributeName());
newModuleMapping.setXPath(".");
newModuleMapping.setReferenceClass(AdaptedModuleList.class);
newModuleMapping.setConverter(new ModuleListConverter());
descriptor.addMapping(newModuleMapping);
}Part 1/2 -
I want to marshall a java content tree (generated with jaxb api) in xml stream
in an EJB.
Generated classes are archived in a jar file containing its jaxb.properties, when
I test it
in a classic java process it runs well.
When I try to do it in an EJB with weblogic 8.1 I get the following error:
javax.xml.bind.JAXBException: Unable to locate jaxb.properties for package
I've checked:
- jaxb.properties is in the archive file
I've tried to put the jar file in the classpath of the server in the starter script.
I've tried to put reference classpath in the manifest of the ejb jar and of application
ear.
I've tried to put both reference in server classpath and ear/jar manifest.
I still doesn't run.
Any idea?
Thanks a lot
FranckAdd the directory of the generated classes in the classpath.
"franck" <[email protected]> wrote:
>
I want to marshall a java content tree (generated with jaxb api) in xml
stream
in an EJB.
Generated classes are archived in a jar file containing its jaxb.properties,
when
I test it
in a classic java process it runs well.
When I try to do it in an EJB with weblogic 8.1 I get the following error:
javax.xml.bind.JAXBException: Unable to locate jaxb.properties for package
I've checked:
- jaxb.properties is in the archive file
I've tried to put the jar file in the classpath of the server in the
starter script.
I've tried to put reference classpath in the manifest of the ejb jar
and of application
ear.
I've tried to put both reference in server classpath and ear/jar manifest.
I still doesn't run.
Any idea?
Thanks a lot
Franck -
Hi Experts,
We are developing a WebDynpro for java application in NWDI for XML File Uploading, we have followed the below given process for that
1) Created one XSD as per the client table structure.
2) Developed one java webserver for the XSD file using jwsdp1.6
3) Copied that generated folder in WebDynpro application
4) Included all the required JAX-B jars as External jar files
5) Finally Compiles the application
When running the application it is throwing the below exception
500 Internal Server Error Web Dynpro Container/SAP J2EE Engine/6.40
Failed to process request. Please contact your system administrator.
Error Summary
While processing the current request, an exception occured which could not be handled by the application or the framework.
If the information contained on this page doesn't help you to find and correct the cause of the problem, please contact your system administrator. To facilitate analysis of the problem, keep a copy of this error page. Hint: Most browsers allow to select all content, copy it and then paste it into an empty document (e.g. email or simple text file).
Root Cause
The initial exception that caused the request to fail, was:
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
at com.ae.energy.scm.wdp.InternalXMLFileUpload.<init>(InternalXMLFileUpload.java:403)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
We checked entire application to ensure all the required files included, Could you please give us the cause for this exception and please explain us the solution to resolve it.
We are very thankful for all the people who can give their support in resolving this issue.
Thanks in advance,
Sandeep BonamHi Sandeep,
If you are following DC developemnt for your project, then adding the required JAR files as External Jars will not suffice.
As at deployment, these "External Jars" are not considered.
You will need to create and External Library project, for incorporating the required jars.
For creation and use of External Library Project kindly follow Valery's blog:
/people/valery.silaev/blog/2005/09/14/a-bit-of-impractical-scripting-for-web-dynpro
Hope it Helps.
Regards,
Alka. -
JAXB javax.xml.bind.UnmarshalException: Unexpected end of element
I'm getting the following UnmarshalException when I try to run Unmarshaller.unmarshal from the command line but not when I run it in WSAD:
2006-04-20 16:11:54,680 REPOST ERROR [main] (RestrictedListResponseConsumer.java:111) javax.xml.bind.UnmarshalException: Unexpected end of element {}:origin_country
at com.b.watchdog.jaxb.generated.response.impl.runtime.SAXUnmarshallerHandlerImpl.handleEvent(SAXUnmarshallerHandlerImpl.java:580)
at com.b.watchdog.jaxb.generated.response.impl.runtime.AbstractUnmarshallingEventHandlerImpl.reportError(AbstractUnmarshallingEventHandlerImpl.java:139)
at com.b.watchdog.jaxb.generated.response.impl.runtime.AbstractUnmarshallingEventHandlerImpl.reportError(AbstractUnmarshallingEventHandlerImpl.java:136)
at com.b.watchdog.jaxb.generated.response.impl.runtime.AbstractUnmarshallingEventHandlerImpl.unexpectedLeaveElement(AbstractUnmarshallingEventHandlerImpl.java:153)
at com.b.watchdog.jaxb.generated.response.impl.runtime.AbstractUnmarshallingEventHandlerImpl.leaveElement(AbstractUnmarshallingEventHandlerImpl.java:63)
at com.b.watchdog.jaxb.generated.response.impl.MessageHeaderTypeImpl$Unmarshaller.leaveElement(MessageHeaderTypeImpl.java:245)
at com.b.watchdog.jaxb.generated.response.impl.runtime.SAXUnmarshallerHandlerImpl.endElement(SAXUnmarshallerHandlerImpl.java:141)
at org.iso_relax.verifier.impl.ForkContentHandler.endElement(ForkContentHandler.java:81)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.b.watchdog.jaxb.generated.response.impl.runtime.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:140)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:131)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:136)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:145)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:163)
at com.b.watchdog.RestrictedListResponseConsumer.consumeResponse(RestrictedListResponseConsumer.java:81)
at com.b.watchdog.RestrictedListResponseConsumer.consumeResponses(RestrictedListResponseConsumer.java:52)
at com.b.watchdog.RestrictedListInterfaceManager.exchangeData(RestrictedListInterfaceManager.java:307)
at com.b.watchdog.RestrictedListInterfaceManager.main(RestrictedListInterfaceManager.java:282)My message is:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<list_update_response xsi:schemaLocation="http://www.ab.com list_update_response.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ab.com">
<response_info>
<message_header>
<origin_country>FR</origin_country>
<destination_country>US</destination_country>
<message_datetime>2006-04-18T19:02:00.000+00:00</message_datetime>
</message_header>
</response_info>
<success>
<request_info>
<message_header>
<origin_country>US</origin_country>
<destination_country>FR</destination_country>
<message_datetime>2006-04-20T18:40:31.000+00:00</message_datetime>
</message_header>
</request_info>
</success>
</list_update_response>My XSDs are:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ab.com" xmlns="http://www.ab.com">
<xsd:include schemaLocation="list_update_common.xsd" />
<xsd:element name="description" type="positive_length_token" />
<xsd:element name="error">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" ref="request_info" />
<xsd:element ref="errors" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="errors">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded" minOccurs="1">
<xsd:element ref="validation_error" />
<xsd:element ref="general_logical_error" />
<xsd:element ref="item_logical_error" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="general_logical_error">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="description" />
<xsd:element minOccurs="0" ref="line_number" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="item_logical_error">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="description" />
<xsd:element minOccurs="0" ref="line_number" />
</xsd:sequence>
<xsd:attribute name="item_id" type="item_id" use="required" />
<xsd:attribute name="item_creation_country" type="country_code" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="line_number" type="xsd:positiveInteger" />
<xsd:element name="list_update_response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="response_info" />
<xsd:choice>
<xsd:element ref="error" />
<xsd:element ref="success" />
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="response_info">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="message_header" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="success">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="request_info" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="validation_error">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="description" />
<xsd:element ref="line_number" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ab.com" xmlns="http://www.ab.com">
<xsd:simpleType name="country_code">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z]{2}" />
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="destination_country" type="country_code" />
<xsd:simpleType name="item_id">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z0-9]{12}" />
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="message_datetime" type="utc_datetime" />
<xsd:element name="message_header">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="origin_country" />
<xsd:element ref="destination_country" />
<xsd:element ref="message_datetime" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="origin_country" type="country_code" />
<xsd:simpleType name="positive_length_token">
<xsd:restriction base="xsd:token">
<xsd:minLength value="1" />
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="request_info">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="message_header" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="utc_datetime">
<xsd:restriction base="xsd:dateTime">
<xsd:pattern value=".*(\+00\:00|\-00\:00|Z)" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>Any thoughts?
Thanks.
- LukeI fixed the problem.
-
Toplink xml binding session.xml and servlet
I made a project with toplink-jaxb mapping
with simple pojo object it works fine.
I made another project with servlet
and the same session.xml and java classes
but when my process start it throw an exception :
jaxbexception : Provider oracle.toplink.ox.jaxb.JAXBContextFactory could not be instantiated:
It is like the process could not read the session.xml files, but this file and two xml file for the mapping are in the classpath (in WEB-INF/classes).
Have i to put these files in another place ?
Thanks.Hi,
thank you for your response but
here is the code :
javax.xml.bind.JAXBContext jaxbContext = javax.xml.bind.JAXBContext.newInstance(
"fr.cnav.cramse.pgpe.contactsnationaux"),this.getClass().getClassLoader());
but i still got the same exception :
05/03/01 08:24:33 exceptionProvider oracle.toplink.ox.jaxb.JAXBContextFactory could not be instantiated: java.lang.NoSuchMethodError: oracle.toplink.publicinterface.Session oracle.toplink.tools.sessionmanagement.SessionManager.getSession(oracle.toplink.tools.sessionconfiguration.XMLSessionConfigLoader, java.lang.String, java.lang.ClassLoader, boolean, boolean)
I have also a stange message in the log window in jdev :
Cutting log (size: 101767, max: 100000)Component returned failure code: 0x80470002 (NS_BASE_STREAM_CLOSED) [nsIFileOutputStream.write]Component returned failure code: 0x80470002 (NS_BASE_STREAM_CLOSED) [nsIFileOutputStream.write]Component returned failure code: 0x80470002 (NS_BASE_STREAM_CLOSED) [nsIFileOutputStream.write]Cutting log (size: 101866, max: 100000)Error cleaning up log: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISeekableStream.seek]
Thank you for your help. -
How do I marshall a list using javax.xml.bind.annotation?
Hopefully this is so simple a cave man could do it.
I had to remove the Duke Stars for the time being. I found another bug in the program that may have resulted in my array being empty.
I'm trying to marshall a standalone document of my DeckImpl class. It is a deck of cards of course. It contains an array of CardImpl objects that need to be marshalled too. I could not figure out how to marhall the array so I have a marshall(Marshaller m) method that will
initialize the List (see below) with an ArrayList. I figured the marshaller would do the rest but I just get the declaration and a closed <DECK />tag with the correct attributes (see way below) when I comment out the @XmlElementWrapper, or a DECK root node that simply contains a closed <CARDS /> tag with the line enabled. You can see tha CardImpl class is annotated too.
I must be missing something obvious. Please help.
@XmlRootElement(name = "DECK")
@XmlType(name = "DECK")
public class DeckImpl implements Comparable<DeckImpl> {
@XmlAttribute
public int id;
@XmlAttribute
public boolean isShuffled;
@XmlAttribute
public boolean isCut;
public CardImpl[] cards;
@XmlElementWrapper(name="CARDS")
@XmlElements(@XmlElement(name="CARD",type=CardImpl.class))
public List<CardImpl> CARDS;
private static JAXBContext context;
private static Marshaller marshaller;
public DeckImpl(int id, boolean isCut, boolean isShuffled,
CardImpl[] cards) {
this.id = id;
this.isShuffled = isShuffled;
this.isCut = isCut;
this.cards = cards;
try {
context = JAXBContext.newInstance(DeckImpl.class);
marshaller = context.createMarshaller();
} catch (JAXBException ex) {
Logger.getLogger(CardImpl.class.getName()).log(Level.SEVERE, null, ex);
//... class code goes here
/** Generates XML representation of a deck
* @param writer
* @throws javax.xml.bind.JAXBException
public void marshall(Writer writer) throws JAXBException {
CARDS = new ArrayList<CardImpl>(cards.length);
for (CardImpl i : cards) {
CARDS.add(i);
marshaller.marshal(this, writer);
@XmlType(name = "CARD")
public class CardImpl implements Comparable<CardImpl> {
@XmlElement(name = "NAME")
public String name;
@XmlElement(name = "SUIT")
public String suit;
@XmlAttribute
public int value;
@XmlAttribute
public int pointValue;
//... class code
}The output is:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><DECK isCut="false" isShuffled="true" id="1"/>Regards,
Bill
Edited by: bthayer on Jan 24, 2009 7:15 AM
Edited by: bthayer on Jan 25, 2009 7:02 AMThere's a bit in here on marshalling.
http://java.sun.com/webservices/docs/1.4/tutorial/doc/index.html
Problem with JAXB (and I could be wrong - try posting on the Web Services / XML forum) is that you can only marshal the generated classes. This may mean that you need to create the object, and populate it using the setter / getter methods.
Castor is much more friendly for this as it can marshall objects using reflections. You may also want to look into XMLBeans (which I have no exp of)
Maybe you are looking for
-
Problem while dropping snapshot
Dear sir I am a junior dba, now I have a problem while I drop a customerinfo snapshot from Oracle 9.2.0.4 database. It seem to be the snapshot has been dropped correctly. But I found it's still remained in user's schema and looks like normal table. I
-
h:dataTable re-rendering problem...
hi friends, In my project i am using JSF and a4j .I am getting re-rendering problem with <h:dataTable> in mozilla it is working fine but in IE6 the dataTable is not re-rendering .. code is: <a4j:commandButton value="#{rb.New}" onmouseup="javascript:o
-
after tabs bar fills up all flash in both programs. I have no control over the computer,can't stop, cutting power. Mac version 10.4.11 Machine Name: Power Mac G5 Machine Model: PowerMac7,3 CPU Type: PowerPC G5 (3.0)
-
I reset the iCloud password from my computer. My iPad showed that it was unable to access the account from the lock screen. Pressing either of the two choices, "ignore" or "settings" had no result and the iPad remained locked. How do I get past this
-
Flex 4 default preloader not centered when in sub application
The preloader app loads the mainApp using SWFLoader with height and width set to 100%. In the mainApp we have 1 big image to increase the download time. Check now where the preloader shows up. Why it isn't in the middle of the screen? Testing separat