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