Well, there are three potential workarounds for this:

1) Endorse the JAXB 2.2 API jar.

2) Use Java 5 instead of Java 6

3) Drop the jaxb-impl and jaxb-xjc jars down to 2.1.13 instead of 2.2.


I'll have to see if there is an easier way to detect this (other than an 
UndeclaredThrowableException) and do something a little nicer than that.

Dan



On Thursday 04 November 2010 10:03:55 am Bayu Anggorojati wrote:
> Here is the full stack trace:
> 
> org.apache.cxf.tools.common.ToolException:
> java.lang.reflect.UndeclaredThrowableException
>       at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
> .java:279) at
> org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103
> ) at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113) at
> org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86) at
> org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184) Caused
> by: java.lang.reflect.UndeclaredThrowableException
>       at $Proxy42.required(Unknown Source)
>       at
> com.sun.tools.xjc.generator.bean.field.AbstractField.annotateReference(Abst
> ractField.java:187) at
> com.sun.tools.xjc.generator.bean.field.AbstractField.annotate(AbstractField
> .java:156) at
> com.sun.tools.xjc.generator.bean.field.AbstractListField.generate(AbstractL
> istField.java:124) at
> com.sun.tools.xjc.generator.bean.field.UntypedListField.<init>(UntypedListF
> ield.java:107) at
> com.sun.tools.xjc.generator.bean.field.UntypedListFieldRenderer.generate(Un
> typedListFieldRenderer.java:72) at
> com.sun.tools.xjc.generator.bean.field.DefaultFieldRenderer.generate(Defaul
> tFieldRenderer.java:79) at
> com.sun.tools.xjc.generator.bean.BeanGenerator.generateFieldDecl(BeanGenera
> tor.java:759) at
> com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenera
> tor.java:540) at
> com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:24
> 3) at
> com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:
> 161) at com.sun.tools.xjc.model.Model.generateCode(Model.java:286)
>       at
> com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.j
> ava:252) at
> com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.j
> ava:85) at
> org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAX
> BDataBinding.java:381) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaCon
> tainer.java:573) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaConta
> iner.java:228) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
> .java:128) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
> .java:271) ... 4 more
> Caused by: java.lang.NoSuchMethodException:
> javax.xml.bind.annotation.XmlElementRef.required()
>       at java.lang.Class.getDeclaredMethod(Class.java:1937)
>       at
> com.sun.codemodel.TypedAnnotationWriter.invoke(TypedAnnotationWriter.java:1
> 08) ... 23 more
> 
> /bayu
> 
> On 04-11-2010 15:00, Daniel Kulp wrote:
> > On Thursday 04 November 2010 8:08:57 am Bayu Anggorojati wrote:
> >> Hi Dan,
> >> 
> >> I encountered this error when trying to generate the java code from wsdl
> >> using wsdl2java from cfx 2.3.0:
> >> 
> >> WSDLToJava Error: java.lang.reflect.UndeclaredThrowableException
> >> 
> >> I never had this error with 2.2.10 at least. Is it a bug? or is there
> >> any thing that I need to take care of in 2.30?
> >> 
> >> Thank you in advance.
> > 
> > Can you run with -verbose to get the full stack trace?
> > 
> > Not sure what would cause that.   The stack trace may help.
> > 
> > Dan
> > 
> >> Bayu
> >> 
> >> On 03-11-2010 16:24, Daniel Kulp wrote:
> >>> What version of CXF?   At one point, there was a bug where interceptors
> >>> added to the endpoint directly didn't get added to the chain.  Make
> >>> sure you are using 2.3.0.
> >>> 
> >>> Also, in your code below, you are not setting any actions on the
> >>> Wss4jInInterceptor.  Thus, it may be bailing out fast as its not
> >>> supposed to do any actions.
> >>> 
> >>> Dan
> >>> 
> >>> On Wednesday 03 November 2010 5:24:49 am siuyab wrote:
> >>>> Dear all,
> >>>> 
> >>>> Actually I posted this question under different thread, but I think
> >>>> it's better to start as a new thread.
> >>>> 
> >>>> I have to say that I am new to web service and CXF stuff. I currently
> >>>> trying to add simple username token of ws-security on an already
> >>>> developed code which is using CXFNonSpringServlet.
> >>>> 
> >>>> In the override loadBus method, the endpoint is published in this way:
> >>>> javax.xml.ws.Endpoint.publish("/query", service);
> >>>> 
> >>>> Then I followed the ws-security example as written in following
> >>>> website, without configuring the Spring:
> >>>> https://cwiki.apache.org/CXF20DOC/ws-security.html#WS-Security-addinte
> >>>> rc ept ors
> >>>> 
> >>>> ws-security configuration at server side was also done in the loadBus
> >>>> method.
> >>>> 
> >>>> At the server side however, I didn't follow exactly the same think as
> >>>> shown in the example because in the example Endpoint refers to
> >>>> org.apache.cxf.endpoint.Endpoint, but in the code it refers to
> >>>> javax.xml.ws.Endpoint. So, here is the slightly modified code:
> >>>> 
> >>>> 
> >>>> EndpointImpl jaxwsEndpoint = (EndpointImpl)Endpoint.publish("/query",
> >>>> service);
> >>>> Endpoint cxfEndpoint = (Endpoint)
> >>>> jaxwsEndpoint.getServer().getEndpoint();
> >>>> 
> >>>> /** Adding Incoming Interceptors */
> >>>> Map<String,Object>   inProps= new HashMap<String,Object>();
> >>>> 
> >>>> WSS4JInInterceptor wssIn = new WSS4JInInterceptor(inProps);
> >>>> ((EndpointImpl) cxfEndpoint).getInInterceptors().add(wssIn);
> >>>> 
> >>>> 
> >>>> I got the following error when client tries to execute the method in
> >>>> web service:
> >>>> 
> >>>> 
> >>>> Caused by: org.apache.cxf.binding.soap.SoapFault: MustUnderstand
> >>>> headers:
> >>>> [{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-s
> >>>> e cext -1.0.xsd}Security] are not understood.
> >>>> 
> >>>>           at
> >>>> 
> >>>> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmar
> >>>> sh alF ault(Soap11FaultInInterceptor.java:75) at
> >>>> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handl
> >>>> eM ess age(Soap11FaultInInterceptor.java:46) at
> >>>> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handl
> >>>> eM ess age(Soap11FaultInInterceptor.java:35) at
> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
> >>>> rC hai n.java:243) at
> >>>> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessa
> >>>> ge (Ab stractFaultChainInitiatorObserver.java:99) at
> >>>> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMe
> >>>> ss age (CheckFaultInterceptor.java:69) at
> >>>> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMe
> >>>> ss age (CheckFaultInterceptor.java:34) at
> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
> >>>> rC hai n.java:243) at
> >>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:700) at
> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRe
> >>>> sp ons eInternal(HTTPConduit.java:2261) at
> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRe
> >>>> sp ons e(HTTPConduit.java:2134) at
> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HT
> >>>> TP Con duit.java:1988) at
> >>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66
> >>>> )
> >>>> 
> >>>>           at
> >>>> 
> >>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
> >>>> 
> >>>>           at
> >>>> 
> >>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndin
> >>>> gI nte rceptor.handleMessage(MessageSenderInterceptor.java:62) at
> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
> >>>> orC hai n.java:243) at
> >>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487) at
> >>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313) at
> >>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265) at
> >>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> >>>> 
> >>>>           at
> >>>> 
> >>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124
> >>>> )
> >>>> 
> >>>>           ... 30 more
> >>>> 
> >>>> Can somebody give some clue on how to solve this issue please? Perhaps
> >>>> this is very basic or stupid question, but any help will be
> >>>> appreciated.
> >>>> 
> >>>> Regards,
> >>>> Bayu

-- 
Daniel Kulp
dk...@apache.org
http://dankulp.com/blog

Reply via email to