Return-Path: Delivered-To: apmail-cxf-issues-archive@www.apache.org Received: (qmail 64711 invoked from network); 15 Oct 2008 02:17:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Oct 2008 02:17:43 -0000 Received: (qmail 62290 invoked by uid 500); 15 Oct 2008 02:17:44 -0000 Delivered-To: apmail-cxf-issues-archive@cxf.apache.org Received: (qmail 62269 invoked by uid 500); 15 Oct 2008 02:17:44 -0000 Mailing-List: contact issues-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list issues@cxf.apache.org Received: (qmail 62258 invoked by uid 99); 15 Oct 2008 02:17:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Oct 2008 19:17:44 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Oct 2008 02:16:37 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id B1924234C227 for ; Tue, 14 Oct 2008 19:16:44 -0700 (PDT) Message-ID: <6846361.1224037004726.JavaMail.jira@brutus> Date: Tue, 14 Oct 2008 19:16:44 -0700 (PDT) From: "Sky Wang (JIRA)" To: issues@cxf.apache.org Subject: [jira] Commented: (CXF-1863) deal with response header In-Reply-To: <999726414.1223949344251.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/CXF-1863?page=3Dcom.atlassian.j= ira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D126396= 95#action_12639695 ]=20 Sky Wang commented on CXF-1863: ------------------------------- Ok, I have fill a camel JIRA[1]. https://issues.apache.org/activemq/browse/CAMEL-987 Thanks a lot! > deal with response header > ------------------------- > > Key: CXF-1863 > URL: https://issues.apache.org/jira/browse/CXF-1863 > Project: CXF > Issue Type: Bug > Affects Versions: 2.1.1 > Environment: operating system: windows 2000 > software plaform: apache-camel-1.4.0 > Reporter: Sky Wang > > I use apache-camel-1.4.0 and apache-cxf-2.1.1 in my application. > My application is a web service application.Which receive a soap header += soap body, and then response a soap header + soap body. > I use WSDLToJava tool to create the java code from wsdl, it creates an in= terface for me as follow:=20 > =09@WebService(targetNamespace =3D "http://com.aspire/", name =3D "Servic= e")=20 > =09@XmlSeeAlso({aspire.com.xsd.ObjectFactory.class})=20 > =09@SOAPBinding(parameterStyle =3D SOAPBinding.ParameterStyle.BARE)=20 > =09public interface Service{=20 > =09 @SOAPBinding(parameterStyle =3D SOAPBinding.ParameterStyle.BARE)=20 > =09 @WebMethod=20 > =09 public void serviceReq(=20 > =09 @WebParam(partName =3D "request", name =3D "serviceReq", targetN= amespace =3D "http://com.aspire/xsd")=20 > =09 aspire.com.xsd.ServiceReq request,=20 > =09 @WebParam(partName =3D "requestHeader", name =3D "serviceHeader"= , targetNamespace =3D "http://com.aspire/xsd", header =3D true)=20 > =09 aspire.com.xsd.ServiceHeader requestHeader,=20 > =09 @WebParam(partName =3D "response", mode =3D WebParam.Mode.OUT, n= ame =3D "serviceResponse", targetNamespace =3D "http://com.aspire/xsd")=20 > =09 javax.xml.ws.Holder response,=20 > =09 @WebParam(partName =3D "responseHeader", mode =3D WebParam.Mode.= OUT, name =3D "serviceHeader", targetNamespace =3D "http://com.aspire/xsd",= header =3D true)=20 > =09 javax.xml.ws.Holder responseHeader= =20 > =09 );=20 > =09}=20 > Then, I implement the routing rules in the xml file. In my processor, I = only need set response body and response header.I have traced the exchange = object of the processor, the exchange.out element is null, and the exchang= e.in element is a CxfMessage object. The exchange.in.body element is a Mess= ageContentList object: Object[0] is ServiceReq, Object[1] is ServiceHeader= , Object[2] is a Holder, Object[3] is a Holder.=20 > So i put response body into Object[2], and put response header into Objec= t[3]:=20 > org.apache.camel.Message in =3D exchange.getIn();=20 > List inBody =3D (List) in.getBody();=20 > Holder holderBody =3D (Holder)inBody.get(2);=20 > holderBody .value =3D body;// body is a ServiceResponse object= =20 > Holder holderHeader =3D (Holder)inBody.get(3);=20 > holderHeader .value =3D header;//header is a ServiceHeader obje= ct=20 > But, when I run the application, I got an Exception:java.lang.OutOfMemory= Error: Java heap space.=20 > I debuged into program, there is an Infinite Loop occured at the = =20 > org.apache.cxf.jaxws.interceptors.HolderOutInterceptor(72):=20 > for (int x =3D 0; x < inObjects.size(); x++) {=20 > Object o =3D inObjects.get(x);=20 > if (o instanceof Holder) {=20 > outObjects.set(x + 1, o); > }=20 > }=20 > I have traced and found: inObjects =3D=3D outObjects is true, which lead= s to an Infinite Loop.=20 > Stack trace:=20 > 2008-10-14 9:40:19 sun.reflect.NativeMethodAccessorImpl invoke0 > =E4=B8=A5=E9=87=8D: EXCEPTION=20 > java.lang.OutOfMemoryError: Java heap space > 2008-10-14 9:40:19 org.apache.cxf.phase.PhaseInterceptorChain doIntercept > =E4=BF=A1=E6=81=AF: Interceptor has thrown exception, unwinding now > org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader. > =09at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.hand= leMessage(ReadHeadersInterceptor.java:183) > =09at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.hand= leMessage(ReadHeadersInterceptor.java:54) > =09at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterce= ptorChain.java:221) > =09at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449) > =09at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handl= eResponse(HTTPConduit.java:1996) > =09at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close= (HTTPConduit.java:1832) > =09at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java= :66) > =09at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:59= 1) > =09at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEn= dingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > =09at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterce= ptorChain.java:221) > =09at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296) > =09at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242) > =09at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) > =09at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:= 178) > =09at $Proxy48.serviceContentFetchReq(Unknown Source) > =09at com.aspire.archtype.camel.Client.invoke(Client.java:77) > =09at com.aspire.archtype.camel.spring.Main.main(Main.java:19) > Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog > at [row,col {unknown-source}]: [1,0] > =09at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java= :661) > =09at com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:= 2134) > =09at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.= java:2040) > =09at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069) > =09at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:10= 95) > =09at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.hand= leMessage(ReadHeadersInterceptor.java:83) > =09... 16 more > javax.xml.ws.soap.SOAPFaultException: Error reading XMLStreamReader. > =09at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:= 199) > =09at $Proxy48.serviceContentFetchReq(Unknown Source) > =09at com.aspire.archtype.camel.Client.invoke(Client.java:77) > =09at com.aspire.archtype.camel.spring.Main.main(Main.java:19) > Caused by: org.apache.cxf.binding.soap.SoapFault: Error reading XMLStream= Reader. > =09at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.hand= leMessage(ReadHeadersInterceptor.java:183) > =09at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.hand= leMessage(ReadHeadersInterceptor.java:54) > =09at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterce= ptorChain.java:221) > =09at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449) > =09at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handl= eResponse(HTTPConduit.java:1996) > =09at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close= (HTTPConduit.java:1832) > =09at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java= :66) > =09at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:59= 1) > =09at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEn= dingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > =09at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterce= ptorChain.java:221) > =09at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296) > =09at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242) > =09at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) > =09at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:= 178) > =09... 3 more > Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog > at [row,col {unknown-source}]: [1,0] > =09at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java= :661) > =09at com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:= 2134) > =09at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.= java:2040) > =09at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069) > =09at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:10= 95) > =09at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.hand= leMessage(ReadHeadersInterceptor.java:83) > =09... 16 more > =09 --=20 This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.