Hi,
We consider this issue to be a huge blocker for a major project. When a
user-defined exception is thrown by the server, a client receives a
SOAPExceptionFault (with the message that belonged to the user-defined
exception). CXF version is 2.0.2. You can find generated exception
class, exception details class and relevant parts od wsdl attached to
this message.
If any more information is required, I will be more than happy to post
it. We are really stuck with this!
Thanks in advance, and best regards!
Exceptions are logged both by the server, on Tomcat console and on the
client side.
Client:
Invoking removeXtmProjects...
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Project
does not exist.
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:175)
at $Proxy27.removeXtmProjects(Unknown Source)
at
com.xmlintl.webservice.integration.IntegrationClient.main(IntegrationClient.java:251)
Caused by: org.apache.cxf.binding.soap.SoapFault: Project does not exist.
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:70)
at
org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:90)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:179)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:56)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
... 2 more
Server side:
INFO: Executing operation removeXtmProjects
2007-10-22 10:07:39 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Project does not exist.
at
org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:101)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:76)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:90)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:100)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:63)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:73)
at
org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:79)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:235)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:140)
at
org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:278)
at
org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:256)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:619)
Caused by:
com.xmlintl.webservice.integration.IncorrectProjectIdsException: Project
does not exist.
at
com.xmlintl.webservice.integration.project.ProjectManager.removeXtmProject(ProjectManager.java:553)
at
com.xmlintl.webservice.integration.IntegrationImpl.removeXtmProjects(IntegrationImpl.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:107)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:77)
... 38 more
package com.xmlintl.webservice.integration;
import javax.xml.ws.WebFault;
/**
* This class was generated by the CXF 2.0.2-incubator
* Fri Oct 19 15:53:41 CEST 2007
* Generated source version: 2.0.2-incubator
*
*/
@WebFault(name = "IncorrectProjectIdsDetails", targetNamespace = "http://integration.webservice.xmlintl.com/")
public class IncorrectProjectIdsException extends Exception {
public static final long serialVersionUID = 20071019155341L;
private java.lang.String incorrectProjectIdsDetails;
public IncorrectProjectIdsException (String message) {
super(message);
}
public IncorrectProjectIdsException (String message, java.lang.String incorrectProjectIdsDetails) {
super(message);
this.incorrectProjectIdsDetails = incorrectProjectIdsDetails;
}
public IncorrectProjectIdsException (String message, java.lang.String incorrectProjectIdsDetails, Throwable cause) {
super(message, cause);
this.incorrectProjectIdsDetails = incorrectProjectIdsDetails;
}
public java.lang.String getFaultInfo() {
return this.incorrectProjectIdsDetails;
}
}
<?xml version="1.0"?>
<project name="xmlintl-auth-cxf" default="wsdl2java">
<property file="${user.name}.properties" />
<property file="project.properties" />
<!-- we read user properties once more if there are any overrides of the global preferences -->
<property file="${user.name}.properties" />
<path id="cxf.classpath">
<fileset dir="${cxf.home}/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="wsdl2java">
<delete dir="${gen.src}"/>
<mkdir dir="${gen.src}"/>
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-validate"/>
<arg value="-server"/>
<arg value="-client"/>
<arg value="-impl"/>
<arg value="-d"/>
<arg value="${gen.src}"/>
<arg value="${wsdl.file}"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="IntegrationService"
targetNamespace="http://integration.webservice.xmlintl.com/"
xmlns:ns1="http://integration.webservice.xmlintl.com/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://integration.webservice.xmlintl.com/"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://integration.webservice.xmlintl.com/">
<xsd:element name="removeXtmProjects"
type="removeXtmProjects" />
<xsd:complexType name="removeXtmProjects">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="projectIds" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="removeXtmProjectsResponse"
type="removeXtmProjectsResponse" />
<xsd:complexType name="removeXtmProjectsResponse">
<xsd:sequence />
</xsd:complexType>
<xsd:element name="login">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="username"
type="xsd:string">
</xsd:element>
<xsd:element name="passphrase"
type="xsd:string">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="IncorrectProjectIdsDetails"
type="xsd:string">
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="removeXtmProjects">
<wsdl:part name="parameters" element="ns1:removeXtmProjects">
</wsdl:part>
</wsdl:message>
<wsdl:message name="removeXtmProjectsResponse">
<wsdl:part name="parameters"
element="ns1:removeXtmProjectsResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="IncorrectProjectIdsException">
<wsdl:part name="message" element="ns1:IncorrectProjectIdsDetails"></wsdl:part>
</wsdl:message>
<wsdl:portType name="Integration">
<wsdl:operation name="removeXtmProjects">
<wsdl:input name="removeXtmProjects"
message="ns1:removeXtmProjects">
</wsdl:input>
<wsdl:output name="removeXtmProjectsResponse"
message="ns1:removeXtmProjectsResponse">
</wsdl:output>
<wsdl:fault name="fault"
message="ns1:IncorrectProjectIdsException">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="IntegrationBinding" type="ns1:Integration">
<wsdl:operation name="removeXtmProjects">
<soap:operation
soapAction="http://integration.webservice.xmlintl.com/removeXtmProjects" />
<wsdl:input name="removeXtmProjects">
<soap:body use="literal" namespace="http://integration.webservice.xmlintl.com/" />
</wsdl:input>
<wsdl:output name="removeXtmProjectsResponse">
<soap:body use="literal" namespace="http://integration.webservice.xmlintl.com/" />
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault use="literal" name="fault" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="IntegrationService">
<wsdl:port name="IntegrationPort"
binding="ns1:IntegrationBinding">
<soap:address
location="http://localhost:8080/integration/services/Integration" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>