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).
