Hi,
Here is a clue for your issue.

"Exception in thread "main" java.lang.NoSuchMethodError: 
javax.xml.soap.SOAPFactory.createFault()Ljavax/xml/soap/SOAPFault;"


It could be another SAAJ implementation instead of SUN's SAAJ1.3 was load in the Tomcat.
Please check the Tomcat's class path for it.

The below URL may help you.

http://www.nabble.com/Cxf-spring-client-throws-Cannot-create-SAAJ-factory-instance-tf4055658.html#a11521672


Willem.

曾信誠_thc wrote:
hi all.
I got a question about spring demo in CXF document.
Follow the article, I have built the environment, publish service on Tomcat
setting client, etc.
However, when I try to get service response, i got a problem just like the 
article posted on 06 Aug 2007,
the title is "spring demo client"

I`ll guess that something going wrong after service try to generate response
Dont know if this problem has been solved yet, any suggestion will be appreciate, thx !




here is my error msg:
---------------------------------------------------------------------------------------------------------------------------------------------
SOAP :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
 <soap:Body>
  <soap:Fault>
   <faultcode>soap:Client</faultcode>
   <faultstring>Error reading XMLStreamReader.</faultstring>
  </soap:Fault>
 </soap:Body>
</soap:Envelope>
------------------------------------------------------------------------------------------------------------------------------------------
Tomcat:

2007/10/24 銝箫? 09:18:14 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
        at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:186)
        at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:57)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:206)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:67)
        at 
org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:100)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:224)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
        at 
org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:261)
        at 
org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:239)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:595)
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
 at [row,col {unknown-source}]: [1,0]
        at 
com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:661)
        at 
com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134)
        at 
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040)
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
        at 
com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1095)
        at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:87)
        ... 24 more
-------------------------------------------------------------------------------------------------------------------------------------------------------------
and finally, my client on Eclipse
log4j:WARN No appenders could be found for logger 
(org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
2007/10/24 下午 05:18:11 org.apache.cxf.bus.spring.BusApplicationContext 
getConfigResources
資訊: Could not find the configuration file cxf.xml on the classpath.
2007/10/24 下午 05:18:13 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean 
buildServiceFromClass
資訊: Creating Service {http://demo.dsc.com/}HelloWorldService from class 
com.dsc.demo.HelloWorld
Exception in thread "main" java.lang.NoSuchMethodError: 
javax.xml.soap.SOAPFactory.createFault()Ljavax/xml/soap/SOAPFault;
     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:150)
     at $Proxy11.sayHi(Unknown Source)
     at com.dsc.demo.Client.main(Client.java:30)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
my client code
import com.dsc.demo.HelloWorld;

import org.springframework.context.support.ClassPathXmlApplicationContext;


public final class Client {

   private Client() {
   }

   public static void main(String args[]) throws Exception {
       // START SNIPPET: client
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"/com/dsc/demo/client-beans.xml"}); HelloWorld client = (HelloWorld)context.getBean("client");

       String response = client.sayHi("Joe");
       System.out.println("Response: " + response);
       System.exit(0);
       // END SNIPPET: client
   }
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------

Reply via email to