File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Web Services and the fly likes New to Web Services and JAXB Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "New to Web Services and JAXB" Watch "New to Web Services and JAXB" New topic
Author

New to Web Services and JAXB

Connie Irwin
Greenhorn

Joined: Aug 01, 2005
Posts: 8
I have downloaded and installed the JWSDP and installed it with tomcat 5 for Java WSDP on my Win XP workstations. I am able to build and compile the source files for the unmarshal-read sample application. However, when I go on to try to run the application, i get the following stack trace:

C:\Sun\jwsdp-1.6\jaxb\samples\unmarshal-read\classes>java Main
java.lang.SecurityException: class "javax.xml.namespace.NamespaceContext"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:599)
at java.lang.ClassLoader.defineClass(ClassLoader.java:532)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at primer.po.impl.runtime.GrammarInfoFacade.class$(GrammarInfoFacade.jav
a:162)
at primer.po.impl.runtime.GrammarInfoFacade.createGrammarInfoFacade(Gram
marInfoFacade.java:161)
at primer.po.impl.runtime.DefaultJAXBContextImpl.<init>(DefaultJAXBConte
xtImpl.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at com.sun.xml.bind.ContextFactory_1_0_1.createContext(ContextFactory_1_
0_1.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:96)
at javax.xml.bind.ContextFinder.searchcontextPath(ContextFinder.java:229
)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:149)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:281)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:238)
at Main.main(Main.java:37)


The statement in Main.java that is the point of failure is the statement that sets the JAXB context:

JAXBContext jc = JAXBContext.newInstance( "primer.po" );
I am using the ant build.xml to do the build.

Any help is appreciated.

Thanks,

javawannabe2005
Tim West
Ranch Hand

Joined: Mar 15, 2004
Posts: 539
I've not hit this myself, but from what I've read, this is usually a classpath issue.

That is, the JAXB classes are finding the class 'javax.xml.namespace.NamespaceContext' somewhere on the classpath, but it isn't the one provided with JWSDP (and so, the one that would have appropriate signing/security information).

What you need to do is ensure you're using the "right version" of each class - the right namespace.jar, in this case. In this case, this involves making sure you're using the version supplied with JWSDP, not whichever one appears on your classpath.

Usually, you'd do this by passing a particular classpath to the java program. I.e., 'java -classpath "c:/foo/bar;..." Main'.

However, the JWSDP includes a *much* nicer way: use the Ant build file ('build.xml') supplied with the unmarshal example (i.e., JWSDP_HOME/jaxb/samples/unmarshal-read/build.xml). Looking at the contents of this build file, you want to run the Ant target "run". That is, you should be able to type (from the directory containing 'build.xml') "ant run".

If you're not familiar with Ant, I suggest you read up on it a bit - it's used throughout JWSDP, and across Java applications in general. It all starts here.


-Tim
Connie Irwin
Greenhorn

Joined: Aug 01, 2005
Posts: 8
That's interesting and helpful. I did start of with ant and the build.xml that were supplied with the JWSDP, however, I will try running the sample with the classpath qualifier as you suggest, and will let you know the result. Much thanks. Btw, I did suspect that it wasa classpath issue.
Connie Irwin
Greenhorn

Joined: Aug 01, 2005
Posts: 8
The problem was indeed a classpath problem. The jre required a reference to the jaxp jars. The jwsdp installation deploys a message to the final screen instructing the user to:

create a directory as follows in the jre path
<JAVA_HOME>\jre\lib\endorsed
copy the jaxp jars to this library
<JWSDP_HOME>\jaxp\lib
<JWSDP_HOME>\jaxp\lib\endorsed

As soon as I copied these files to the <JAVA_HOME> jre, the example built, compiled and ran.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: New to Web Services and JAXB
 
Similar Threads
java command error
Client
EJB deployment error
help with marcus questions
Installing JDK