Thank you for your reply!

I try to add getFaultInfo() into exception, now that nullpointexception will
not happen.

but when I write another test with localTransport, here have a new
exception:

my test:

param.setUnid(2L);
                try {
                
assertEquals("value",testLocalServiceClient.testMethod(param).getValue());
                } catch (TestException e) {
                        assertEquals("fault", e.getFaultInfo());
                        assertEquals("fault", e.getMessage());
                        
                }

service impl:
if(body.getUnid()==2L){
                        TestException te =  new TestException("fault");
                        SystemFaultDocument document = 
SystemFaultDocument.Factory.newInstance();
                        SystemFault sf = document.addNewSystemFault();
                        sf.setValue("fault");
                        te.setFaultInfo(document);
                        throw te;
                }



I get another nullpointexception:
信息: Application has thrown exception, unwinding now:
com.mycompany.app.TestException: fault
2008-10-2 12:31:35 org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor
handleMessage
警告: Exception occurred while writing fault.
java.lang.NullPointerException
        at org.apache.cxf.xmlbeans.DataWriterImpl.write(DataWriterImpl.java:60)
        at
org.apache.cxf.xmlbeans.NodeDataWriterImpl.write(NodeDataWriterImpl.java:47)
        at
org.apache.cxf.xmlbeans.NodeDataWriterImpl.write(NodeDataWriterImpl.java:34)
        at
org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor.handleMessage(WebFaultOutInterceptor.java:112)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
        at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:260)
        at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
        at
org.apache.cxf.transport.local.LocalConduit$1$1.run(LocalConduit.java:132)
        at java.lang.Thread.run(Unknown Source)
2008-10-2 12:31:35 com.sun.xml.messaging.saaj.soap.impl.FaultImpl
setFaultCode
严重: SAAJ0140: No NamespaceURI, SOAP requires faultcode content to be a QName


 





dkulp wrote:
> 
> 
> Quick question:
> 
> the TestException exception, does that "look like" a JAX-WS generated 
> exception.   Basically, does it have a "getFaultInfo()" method that 
> returns the XMLBeans generated type for the fault?    If not, can you 
> try that?   (also will need the constructors that take that bean)
> 
> I THINK that will work (not 100% sure though).
> 
> Either way, thanks for logging the bug.   It does need to be fixed.  I'm 
> just trying to provide a workaround.
> 
> Dan
> 
> 
> 
> 
> On Tuesday 30 September 2008, quzhe wrote:
>> hi,All:
>>    I use xmlbeans binding, when I write this service, it is working:
>> @WebMethod(operationName="insertSysaddresstype")
>>      @WebResult(name="InsertSysaddresstypeResponse")InsertSysaddresstypeRe
>>sponse insert(@WebParam(name="InsertSysaddresstypeParam")
>> InsertSysaddresstypeParamDocument.InsertSysaddresstypeParam body) ;
>>
>> but when I throw a exception:
>> @WebMethod(operationName="insertSysaddresstype")
>>      @WebResult(name="InsertSysaddresstypeResponse")InsertSysaddresstypeRe
>>sponse insert(@WebParam(name="InsertSysaddresstypeParam")
>> InsertSysaddresstypeParamDocument.InsertSysaddresstypeParam body)
>> throws TestException;
>>
>> cxf will have a nullpoint exception:
>>
>>
>> Caused by: java.lang.NullPointerException
>>         at
>> org.apache.cxf.xmlbeans.XmlBeansSchemaInitializer.mapClass(XmlBeansSc
>> hemaInitializer.java:165)
>>         at
>> org.apache.cxf.xmlbeans.XmlBeansSchemaInitializer.checkForExistence(X
>> mlBeansSchemaInitializer.java:217)
>>         at
>> org.apache.cxf.xmlbeans.XmlBeansSchemaInitializer.begin(XmlBeansSchem
>> aInitializer.java:142)
>>         at
>> org.apache.cxf.service.ServiceModelVisitor.visitOperation(ServiceMode
>> lVisitor.java:120)
>>         at
>> org.apache.cxf.service.ServiceModelVisitor.walk(ServiceModelVisitor.j
>> ava:74)
>>         at
>> org.apache.cxf.xmlbeans.XmlBeansDataBinding.initialize(XmlBeansDataBi
>> nding.java:102)
>>         at
>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServ
>> iceFromClass(ReflectionServiceFactoryBean.java:345)
>>         at
>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFrom
>> Class(JaxWsServiceFactoryBean.java:513)
>>
>>
>>
>> How to do it here?
>>
>> thank you!
> 
> 
> 
> -- 
> J. Daniel Kulp
> Principal Engineer, IONA
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
> 
> 

-- 
View this message in context: 
http://www.nabble.com/xmlbean-binding-can-not-handle-throws-exception-tp19735873p19773237.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to