I've looked at the FAQ about this issue: 
http://xml.apache.org/soap/faq/faq_chawke.html#Q1_1

and I've tried many different versions of xml parsers including crimson that comes 
with jboss 2.4.4, xerces 1.4.3, and xerces 2.0.1.  Tests using these all had the same 
faultcode problem.

The FAQ calls this a bug in the parsers but I don't buy that.  From a previous post by 
Jim Cross, this looks like a bug in SOAP.  Is this fixed in RC 2.3?  Does anyone know 
anything about this problem?

It's strange because fault parsing was working on my system at one time.  I didn't 
change the xml parser I was using so what could it be?

Is there a workaround for this?  i.e.:  not setting a namespace in the call object?

any help is greatly appreciated.

Rich

-----Original Message-----
From: Richard Bolen 
Sent: Wednesday, May 22, 2002 10:21
To: SOAP Users Mailing List (E-mail)
Subject: SOAPException parsing Fault element?


I'm getting the following SOAPException from SOAP when it is parsing what appears to 
be a valid Fault element:

SOAPException in soapMethodCall: A 'http://schemas.xmlsoap.org/soap/envelope/:Fault' 
element must contain a: 'faultcode' element.


Here's the Fault response (captured from the TCPMonitor utility) which seems to 
contain a valid 'faultcode' element:

HTTP/1.1 500 Internal Server Error 
Content-Type: text/xml; 
charset=utf-8 
Content-Length: 4962 
Date: Wed, 22 May 2002 14:01:46 GMT 
Server: Apache Tomcat/4.0.1 (HTTP/1.1 Connector)  
<?xml version='1.0' encoding='UTF-8'?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/1999/XMLSchema";> 
<SOAP-ENV:Body> 
<SOAP-ENV:Fault> 
<faultcode>SOAP-ENV:Server</faultcode> 
<faultstring>SE:  SQLException executing SQL update "insert into users values (?, ?, 
?, ?, ?, ?, ?, ?, ?, ?)" in Utility.executeSqlQuery method: Invalid argument value: 
Duplicate entry 'newgapuser' for key 2</faultstring>
<faultactor>/soap/servlet/rpcrouter</faultactor> 
<detail> 
<stackTrace>com.gmatc.netpalette.common.exceptions.ServerException: SE:  SQLException 
executing SQL update &quot;insert into users values (?, ?, ?, ?, ?, ?, ?, ?, ?, 
?)&quot; in Utility.executeSqlQuery method: Invalid argument value: Duplicate entry 
'newgapuser' for key 2        
at com.gmatc.netpalette.server.utilities.Utility.executeSqlInsert(Utility.java:287)    
 
at com.gmatc.netpalette.server.data.DataFactory.insert(DataFactory.java:46)     
at com.gmatc.netpalette.server.ejb.SpecifierSession.insert(SpecifierSession.java:175)  
 
at java.lang.reflect.Method.invoke(Native Method)       
at 
org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:664)
        
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)      
 
at 
org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:242)
         
at org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:138)        
 
at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:347)  
      
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:100)     
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:170)         
at org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:339)    
 
at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:504)
         
at 
org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericProxy.java:335)
    
at 
org.jboss.ejb.plugins.jrmp.interfaces.StatefulSessionProxy.invoke(StatefulSessionProxy.java:136)
     
at $Proxy8.insert(Unknown Source)       
at java.lang.reflect.Method.invoke(Native Method)       
at org.apache.soap.providers.StatefulEJBProvider.invoke(StatefulEJBProvider.java:153)  
 
at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.java:287)      
 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)         
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)         
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) 
 
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)     
 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)  
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)        
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201) 
 
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)     
 
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)     
 
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)     
 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)  
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)        
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)   
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)       
 
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)     
 
at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)  
      
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)     
 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)       
 
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)     
 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)  
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)        
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)   
 
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)     
 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)  
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)        
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)   
 
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)       
 
at java.lang.Thread.run(Thread.java:484) </stackTrace> 
</detail> 
</SOAP-ENV:Fault>  
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 


Does anyone know why it can't find the faultcode element?

Thanks,
Rich

--------------------------------------------------------------------
Rich Bolen
Senior Software Developer
GretagMacbeth Advanced Technologies Center
79 T. W. Alexander Drive - Bldg. 4401 - Suite 250
PO Box 14026
Research Triangle Park, North Carolina 27709-4026  USA
Phone:  919-549-7575 x239,  Fax: 919-549-0421           

http://www.gretagmacbeth.com/           
--------------------------------------------------------------------

Reply via email to