You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Hugo Trippaers (JIRA)" <ji...@apache.org> on 2013/03/28 14:47:15 UTC

[jira] [Commented] (CLOUDSTACK-1831) ModifyStoragePool failed, ClassCastException JAXBRIContext

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-1831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13616249#comment-13616249 ] 

Hugo Trippaers commented on CLOUDSTACK-1831:
--------------------------------------------

This error message is generated when there is a version conflict versus the jaxb implementations in the jvm.

framework-rest and framework-engine-api both pull in the dependency cxf-bundle-jaxrs which in turn pulls jaxb-impl 2.1.13. This might be the cause of the problem.


Something interesting to read: (at https://jax-ws.dev.java.net/guide/Using_JAX_WS_2_1_with_JavaSE6.html) 

Quote:

2.8. Using JAX-WS 2.1 with JavaSE6 

JavaSE6 ships with JAX-WS 2.0 API in rt.jar, which causes some trouble when you try to run applications that use JAX-WS 2.1 API. This document collects information about how to solve this issue. 

2.8.1. Endorsed directory 

One way to fix this is to copy jaxws-api.jar and jaxb-api.jar into JRE endorsed directory, which is $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed) 

Some application containers, such as Glassfish, modifies the location of the endorsed directory to a different place. From inside the JVM, you can check the current location by doing System.out.println(System.getProperty("java.endorsed.dirs")); 

Obviously you still need other JAX-WS jars in your classpath. 

Please do not put all the jars to the endorsed directory. This makes it impossible for JAX-WS RI to see other classes that it needs for its operation, such as servlet classes on the server-side, or Ant classes in the tool time. As those are not loaded by the bootstrap classloader, you'll get NoClassDefError on servlet/Ant classes.


                
> ModifyStoragePool failed, ClassCastException JAXBRIContext
> ----------------------------------------------------------
>
>                 Key: CLOUDSTACK-1831
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1831
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: VMware
>    Affects Versions: 4.2.0
>            Reporter: Hugo Trippaers
>            Assignee: Hugo Trippaers
>            Priority: Minor
>
> The following error was observed while adding a primary storage pool to a vmware cluster
> 2013-03-28 14:13:02,238 INFO  [vmware.resource.VmwareResource] (DirectAgent-68:10.200.23.49) Executing resource ModifyStoragePoolCommand: {"add":true,"pool":{"id":2,"uuid":"6aed2486-201b-300b-bca9-f9b545826f8f","host":"10.200.23.31","path":"/volumes/mccd_volume/vmware/store1","port":2049,"type":"NetworkFilesystem"},"localPath":"/mnt/\\6aed2486-201b-300b-bca9-f9b545826f8f","wait":0}
> 2013-03-28 14:13:02,529 ERROR [vmware.resource.VmwareResource] (DirectAgent-68:10.200.23.49) ModifyStoragePoolCommand failed due to Exception: java.lang.ExceptionInInitializerError
> Message: null
> java.lang.ExceptionInInitializerError
> 	at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107)
> 	at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
> 	at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
> 	at $Proxy461.createNasDatastore(Unknown Source)
> 	at com.cloud.hypervisor.vmware.mo.HostDatastoreSystemMO.createNfsDatastore(HostDatastoreSystemMO.java:145)
> 	at com.cloud.hypervisor.vmware.mo.HostMO.mountDatastore(HostMO.java:747)
> 	at com.cloud.hypervisor.vmware.resource.VmwareResource.execute(VmwareResource.java:3133)
> 	at com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(VmwareResource.java:388)
> 	at com.cloud.agent.manager.DirectAgentAttache$Task.run(DirectAgentAttache.java:186)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bind.api.JAXBRIContext
> 	at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.java:533)
> 	at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107)
> 	... 16 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira