First, can you set the ReceiveTimeout a bit longer, the default value is 60000 
which means 60 second.
> httpClientPolicy.setReceiveTimeout(20000);


If could be more reasonable to let the client wait for response with a bit 
longer time.
Second, can you consider to upgrade the JDK version to the latest one? 



-- 
Willem Jiang

Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) 
(English)
          http://jnn.javaeye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang 
Weibo: willemjiang




On Thursday, October 11, 2012 at 11:25 PM, nereuschen wrote:

> hi,all:
> 
> i use a Client to invoke .net Web Services,but failed. The CXF
> version is 2.6.2;jdk1.6.0_20
> 
> My code like this:
> 
> Client client = ClientProxy.getClient(port);
> HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
> HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
> httpClientPolicy.setConnectionTimeout(5000);
> httpClientPolicy.setAllowChunking(false);
> httpClientPolicy.setReceiveTimeout(20000);
> httpConduit.setClient(httpClientPolicy);
> 
> client.invoke("AddTestMethod ",xxxx,xxxx);
> 
> but *sometimes *the invoke throw an NullPointerException;the log is:
> 
> [2012-10-10 11:24:12 WARN
> phase.PhaseInterceptorChain:org.apache.cxf.common.logging.LogUtils.doLog(LogUtils.java:405)]
> Interceptor for
> {http://www.xxxx.com.cn/}TestInterface#{http://www.xxxx.com.cn/}AddTestMethod 
> has thrown exception, unwinding now
> java.lang.NullPointerException: NullPointerException invoking
> http://www.xxxx.com.cn/TestInterface.asmx: null
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1467)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1457)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:660)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:340)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
> 
> I view the HTTPConduit source code
> 
> HTTPConduit.java 's close method is :
> 
> public void close() throws IOException {
> try {
> if (buffer != null && buffer.size() > 0) {
> thresholdNotReached();
> LoadingByteArrayOutputStream tmp = buffer;
> buffer = null;
> super.write(tmp.getRawBytes(), 0, tmp.size());
> }
> if (!written) {
> handleHeadersTrustCaching();
> }
> if (!cachingForRetransmission) {
> super.close();
> } else if (cachedStream != null) {
> super.flush();
> cachedStream.getOut().close();
> cachedStream.closeFlowthroughStream();
> }
> 
> try {
> handleResponse();
> } finally {
> if (cachingForRetransmission && cachedStream != null) {
> cachedStream.close();
> }
> }
> } catch (HttpRetryException e) {
> handleHttpRetryException(e, connection);
> } catch (IOException e) {
> String url = connection.getURL().toString();
> String origMessage = e.getMessage();
> if (origMessage != null && origMessage.contains(url)) {
> throw e;
> }
> throw mapException(e.getClass().getSimpleName() 
> + " invoking " + connection.getURL() + ":
> "
> + e.getMessage(), e,
> IOException.class);
> * } catch (RuntimeException e) {
> throw mapException(e.getClass().getSimpleName() 
> + " invoking " + connection.getURL() + ":
> "
> + e.getMessage(), e,
> RuntimeException.class);
> }
> 
> *
> 
> and the client java code is deployed under tomcat6,the jars i used is:
> 
> 
> activation-1.1.1.jar
> activeio-core-3.1.2.jar
> activemq-core-5.4.1.jar
> antlr-2.7.6.jar
> aopalliance-1.0.jar
> apache-mime4j-0.6.jar
> asm-3.3.1.jar
> aspectjweaver-1.6.10.jar
> audit-core-1.2.4.jar
> authclient-1.0.jar
> axis-1.4.jar
> bcprov-jdk16-140.jar
> bsh-2.0b4.jar
> c3p0-0.9.1.2.jar
> cglib-nodep-2.2.2.jar
> comments-client-1.2.3.jar
> commons-chain-1.1.jar
> commons-codec-1.5.jar
> commons-collections-3.2.1.jar
> commons-dbcp-1.4.jar
> commons-digester-2.1.jar
> commons-discovery-0.2.jar
> commons-fileupload-1.2.2.jar
> commons-io-2.3.jar
> commons-jxpath-1.3.jar
> commons-lang-2.5.jar
> commons-lang3-3.0.1.jar
> commons-net-2.0.jar
> commons-pool-1.5.4.jar
> commons-validator-1.3.1.jar
> concurrentlinkedhashmap-lru-1.2.jar
> cxf-api-2.6.2.jar
> cxf-rt-bindings-soap-2.6.2.jar
> cxf-rt-bindings-xml-2.6.2.jar
> cxf-rt-core-2.6.2.jar
> cxf-rt-databinding-jaxb-2.6.2.jar
> cxf-rt-frontend-jaxws-2.6.2.jar
> cxf-rt-frontend-simple-2.6.2.jar
> cxf-rt-transports-http-2.6.2.jar
> cxf-rt-ws-addr-2.6.2.jar
> cxf-rt-ws-policy-2.6.2.jar
> dom4j-1.6.1.jar
> dubbo-2.3.3.jar
> ejb3-persistence-1.0.2.GA.jar
> fastjson-1.1.6.jar
> fp-api-1.0.0.jar
> geronimo-j2ee-management_1.1_spec-1.0.1.jar
> geronimo-jms_1.1_spec-1.1.1.jar
> gson-2.2.2.jar
> guava-12.0.1.jar
> hibernate-annotations-3.4.0.GA.jar
> hibernate-c3p0-3.3.1.GA.jar
> hibernate-commons-annotations-3.1.0.GA.jar
> hibernate-core-3.3.1.GA.jar
> hibernate-validator-4.2.0.Final.jar
> httpclient-4.1.jar
> httpcore-4.1.jar
> httpmime-4.1-alpha2.jar
> icu4j-4.0.1.jar
> jackson-core-asl-1.9.6.jar
> jackson-mapper-asl-1.9.6.jar
> jai-codec-1.1.3.jar
> jai-core-1.1.3.jar
> jasypt-1.6.jar
> javassist-3.4.GA.jar
> jaxb-impl-2.1.13.jar
> jaxrpc-api-1.1.jar
> jbpm-api-4.4.jar
> jbpm-bpmn-4.4.jar
> jbpm-jpdl-4.4.jar
> jbpm-log-4.4.jar
> jbpm-pvm-4.4.jar
> jcl-over-slf4j-1.6.6.jar
> jdom-1.1.jar
> jline-0.9.94.jar
> joda-time-2.1.jar
> jsr305-1.3.9.jar
> jstl-1.2.jar
> jta-1.1.jar
> juel-engine-2.1.0.jar
> juel-impl-2.2.1.jar
> jul-to-slf4j-1.6.6.jar
> junit-3.8.2.jar
> jxl-2.6.12.jar
> kahadb-5.4.1.jar
> livetribe-jsr223-2.0.5.jar
> log4j-1.2.17.jar
> mail-1.4.1.jar
> memcached-2.3.1.jar
> mybatis-3.0.6.jar
> mybatis-spring-1.0.2.jar
> mysql-connector-java-5.1.13.jar
> neethi-3.0.2.jar
> netty-3.4.1.Final.jar
> org.osgi.core-4.1.0.jar
> oro-2.0.8.jar
> poi-3.8.jar
> poi-ooxml-3.8.jar
> poi-ooxml-schemas-3.8.jar
> postgresql-9.1-901-1.jdbc4.jar
> protobuf-java-2.4.0a.jar
> quartz-1.8.5.jar
> saaj-1.4.2.jar
> slf4j-api-1.6.4.jar
> slf4j-log4j12-1.6.4.jar
> spring-aop-3.0.6.RELEASE.jar
> spring-asm-3.0.6.RELEASE.jar
> spring-aspects-3.0.6.RELEASE.jar
> spring-beans-3.0.6.RELEASE.jar
> spring-context-3.0.6.RELEASE.jar
> spring-context-support-3.0.6.RELEASE.jar
> spring-core-3.0.6.RELEASE.jar
> spring-expression-3.0.6.RELEASE.jar
> spring-instrument-3.0.6.RELEASE.jar
> spring-jdbc-3.0.6.RELEASE.jar
> spring-jms-3.0.6.RELEASE.jar
> spring-orm-3.0.6.RELEASE.jar
> spring-oxm-3.0.6.RELEASE.jar
> spring-tx-3.0.6.RELEASE.jar
> spring-web-3.0.6.RELEASE.jar
> spring-webmvc-3.0.6.RELEASE.jar
> spring-webmvc-portlet-3.0.6.RELEASE.jar
> sslext-1.2-0.jar
> stax2-api-3.1.1.jar
> struts-core-1.3.8.jar
> struts-taglib-1.3.8.jar
> struts-tiles-1.3.8.jar
> tomcat-dbcp-7.0.29.jar
> validation-api-1.0.0.GA.jar
> velocity-1.6.4.jar
> velocity-tools-2.0.jar
> woodstox-core-asl-4.1.4.jar
> wsdl4j-1.6.2.jar
> xml-apis-1.0.b2.jar
> xmlbeans-2.3.0.jar
> xml-resolver-1.2.jar
> xmlschema-core-2.0.3.jar
> xpp3_min-1.1.4c.jar
> xstream-1.3.1.jar
> zookeeper-3.4.3.jar
> 
> 
> 
> 
> --
> View this message in context: 
> http://cxf.547215.n5.nabble.com/HTTPConduit-throw-NullPointerException-when-invoking-close-tp5716402.html
> Sent from the cxf-user mailing list archive at Nabble.com (http://Nabble.com).



Reply via email to