Hi

What kind of JDK are you using?
It looks like a JAXB impl version issue.

On 9/23/10 10:59 PM, xiaotao183 wrote:

Hi all,

I am getting compilation error when calling JaxWsDynamicClientFactory to
generate a WS client in an osgi bundle deployed to SMX4.

Here is the error



/var/folders/-J/-J2E3X+EFWO9sX6IuLW2DE+++TI/-Tmp-/org.apache.cxf.jaxws.endpoint.dynamic.jaxwsdynamicclientfact...@81dd3c-1285253052600-src/com/melbourneit/provisionmanagement/client/ObjectFactory.java:216:
cannot find symbol
  symbol  : class JAXBElement
  location: class com.melbourneit.provisionmanagement.client.ObjectFactory
      public JAXBElement<String>  createCustomerVOFirstName(String value) {
             ^

/var/folders/-J/-J2E3X+EFWO9sX6IuLW2DE+++TI/-Tmp-/org.apache.cxf.jaxws.endpoint.dynamic.jaxwsdynamicclientfact...@81dd3c-1285253052600-src/com/melbourneit/provisionmanagement/client/ObjectFactory.java:225:
cannot find symbol
  symbol  : class JAXBElement
  location: class com.melbourneit.provisionmanagement.client.ObjectFactory
      public JAXBElement<String>  createCustomerVOState(String value) {

Caused by: javax.xml.bind.JAXBException: Unable to create context
  - with linked exception:
[java.lang.NoSuchMethodException:
com.sun.xml.bind.v2.ContextFactory.createContext(java.lang.String,
java.lang.ClassLoader)]
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:72)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:77)
        at
org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:340)
        ... 37 more
Caused by: java.lang.NoSuchMethodException:
com.sun.xml.bind.v2.ContextFactory.createContext(java.lang.String,
java.lang.ClassLoader)
        at java.lang.Class.getMethod(Class.java:1581)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:69)
        ... 39 more


Here is the code to invoke the factory

JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
         Client client =
factory.createClient(getClass().getClassLoader().getResource("abc-wsdl.xml")
                 .toExternalForm(), PROVISION_MANAGEMENT_WSDL_SERVICE_NAME);

         // client.
         ClientImpl clientImpl = (ClientImpl) client;


The code works perfectly when running as standalong app but fails in the
osgi container.


Thanks


--
Willem
----------------------------------
Apache Camel, Apache CXF committer
Open Source Integration: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: http://twitter.com/willemjiang

Reply via email to