getting "SecurityException" while using JAXB generated Java classes
from different project
Hi All,
Again help needed :)
I am getting following exception while unmarshalling.
---- Stack Trace Starts ----
java.lang.SecurityException: class "javax.xml.bind.JAXBElement"'s
signer information does not match signer information of other classes
in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at com.yashbinary.abc.JaxbImpl.main(JaxbImpl.java:46)
---- Stack Trace Ends ----
After analyzing stack trace its seems problem occur while trying to
access classes from different project. But if its a requirement that
we need to separte the "generate JAXB Java classes from an XML schema"
with those class which are used to traverse the xmls.
I am using to Java project "JAXBDemo" and "JAXB-USE"
1. In first project (JAXBDemo) I Generate JAXB Java classes from an
XML schema.
2. In second project (JAXB-USE) I am trying to read
"booking_detail.xml" using JAXB java classes (generated file from
first project).
---- build.xml (to generate jaxb classes) ----
<project name="JAXBDemo" default="main" basedir=".">
<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
<classpath>
<fileset dir="C:\lib\XML_API\JAXB_Libs" includes="*.jar" />
<fileset dir="C:\jwsdp1.4\jwsdp-shared\lib" includes="*.jar" />
<pathelement location="classes"/>
</classpath>
</taskdef>
<target name="generate">
<xjc target="src" removeOldOutput="yes"
package="com.yashbinary.abc">
<schema dir="C:\Workspace\JAXBDemo\xsd"
includes="booking_detail.xsd"/>
</xjc>
</target>
<target name="main" depends="generate"></target>
</project>
---- Java Code Starts-----
package com.yashbinary.abc;
public class JaxbImpl {
public static void main(String[] args) {
JAXBContext jaxbContext;
try {
jaxbContext = JAXBContext.newInstance("com.yashbinary.abc");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
JAXBElement<CourseBooking> bookingElement =
(JAXBElement<CourseBooking>)
unmarshaller.unmarshal(new File("C:/Workspace/JAXB-USE/xml/
booking_detail.xml"));
}catch( JAXBException je ) {
je.printStackTrace();
}
}
------- Java Code Ends --------
Thank U in Advance...
regards,
Amit Jain