There were circular dependencies in our object graph. I broke them using "ignore" feature in aegis mapping.
-----Original Message----- From: Jing Chang [mailto:[EMAIL PROTECTED] Sent: Monday, August 20, 2007 2:00 PM To: [email protected] Subject: RE: [xfire-user] org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Could not unmarshall type. Yes. No matter which way, the same exception. -----Original Message----- From: Tomek Sztelak [mailto:[EMAIL PROTECTED] Sent: Monday, August 20, 2007 1:53 PM To: [email protected] Subject: Re: [xfire-user] org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Could not unmarshall type. Code looks good. Did you try to turn off chunking ? On 8/20/07, Jing Chang <[EMAIL PROTECTED]> wrote: > > > > > I added the code to turn on/off http chunking in the generated client. It > didn't do the trick. Am I doing it right? Thanks. > > > > public class PanelServiceClient { > > > > private static XFireProxyFactory proxyFactory = new > XFireProxyFactory(); > > > > private HashMap endpoints = new HashMap(); > > > > private Service service0; > > > > public PanelServiceClient() { > > create0(); > > Endpoint PanelServiceHttpPortEP = service0 > > .addEndpoint(new > QName("http://panel.ws.services.lsr.com", > > > "PanelServiceHttpPort"), new QName( > > > "http://panel.ws.services.lsr.com", > > > "PanelServiceHttpBinding"), > > > "http://localhost:8080/iweb_services/services/PanelService"); > > endpoints.put(new > QName("http://panel.ws.services.lsr.com", > > "PanelServiceHttpPort"), PanelServiceHttpPortEP); > > Endpoint PanelServicePortTypeLocalEndpointEP = > service0.addEndpoint( > > new > QName("http://panel.ws.services.lsr.com", > > > "PanelServicePortTypeLocalEndpoint"), new QName( > > > "http://panel.ws.services.lsr.com", > > > "PanelServicePortTypeLocalBinding"), > > "xfire.local://PanelService"); > > endpoints.put(new > QName("http://panel.ws.services.lsr.com", > > > "PanelServicePortTypeLocalEndpoint"), > > > PanelServicePortTypeLocalEndpointEP); > > PanelServicePortType var = getPanelServiceHttpPort(); > > > org.codehaus.xfire.client.Client.getInstance(var).setProperty(HttpTransp ort.CHUNKING_ENABLED, > "true"); > > } > > > > public Object getEndpoint(Endpoint endpoint) { > > try { > > return proxyFactory.create((endpoint).getBinding(), > (endpoint) > > .getUrl()); > > } catch (MalformedURLException e) { > > throw new XFireRuntimeException("Invalid URL", e); > > } > > } > > > > public Object getEndpoint(QName name) { > > Endpoint endpoint = ((Endpoint) endpoints.get((name))); > > if ((endpoint) == null) { > > throw new IllegalStateException("No such endpoint!"); > > } > > return getEndpoint((endpoint)); > > } > > > > public Collection getEndpoints() { > > return endpoints.values(); > > } > > > > private void create0() { > > TransportManager tm = > (org.codehaus.xfire.XFireFactory.newInstance() > > .getXFire().getTransportManager()); > > HashMap props = new HashMap(); > > props.put("annotations.allow.interface", true); > > AnnotationServiceFactory asf = new AnnotationServiceFactory( > > new Jsr181WebAnnotations(), tm, new > AegisBindingProvider( > > new > JaxbTypeRegistry())); > > asf.setBindingCreationEnabled(false); > > service0 = asf.create( > > > (com.lsr.services.ws.panel.PanelServicePortType.class), > props); > > { > > AbstractSoapBinding soapBinding = > asf.createSoap11Binding(service0, > > new > QName("http://panel.ws.services.lsr.com", > > > "PanelServicePortTypeLocalBinding"), > > "urn:xfire:transport:local"); > > } > > { > > AbstractSoapBinding soapBinding = > asf.createSoap11Binding(service0, > > new > QName("http://panel.ws.services.lsr.com", > > > "PanelServiceHttpBinding"), > > > "http://schemas.xmlsoap.org/soap/http"); > > } > > } > > > > public PanelServicePortType getPanelServiceHttpPort() { > > return ((PanelServicePortType) (this).getEndpoint(new QName( > > "http://panel.ws.services.lsr.com", > "PanelServiceHttpPort"))); > > } > > > > public PanelServicePortType getPanelServiceHttpPort(String url) { > > PanelServicePortType var = getPanelServiceHttpPort(); > > > org.codehaus.xfire.client.Client.getInstance(var).setUrl(url); > > return var; > > } > > > > public PanelServicePortType > getPanelServicePortTypeLocalEndpoint() { > > return ((PanelServicePortType) (this).getEndpoint(new QName( > > "http://panel.ws.services.lsr.com", > > > "PanelServicePortTypeLocalEndpoint"))); > > } > > > > public PanelServicePortType > getPanelServicePortTypeLocalEndpoint(String url) { > > PanelServicePortType var = > getPanelServicePortTypeLocalEndpoint(); > > > org.codehaus.xfire.client.Client.getInstance(var).setUrl(url); > > return var; > > } > > > > public static void main(String[] args) { > > > > PanelServiceClient client = new PanelServiceClient(); > > //create a default service endpoint > > PanelServicePortType service = client.getPanelServiceHttpPort(); > > > > //TODO: Add custom client code here > > // > > > > System.out.println("test client completed"); > > System.exit(0); > > } > > > > } > > > > -----Original Message----- > From: Tomek Sztelak [mailto:[EMAIL PROTECTED] > Sent: Monday, August 20, 2007 11:24 AM > To: [email protected] > Subject: Re: [xfire-user] > org.codehaus.xfire.XFireRuntimeException: Could not invoke > service.. Nested exception is > org.codehaus.xfire.fault.XFireFault: Could not unmarshall > type. > > > > > On 8/20/07, Jing Chang <[EMAIL PROTECTED]> wrote: > > > > > > Tomek, > > > > > > Thanks for quick response. How do I turn off/on http chunking on client > > > side? > > > > http://xfire.codehaus.org/HTTP+Transport > > > > > > > My testing client was generated by using MyEclipse's web service > > > client wizard. > > > > Doesn't matter :) dynamic and generated client share the same code. > > > > > Thanks, > > > Jing > > > > > > -----Original Message----- > > > From: Tomek Sztelak [mailto:[EMAIL PROTECTED] > > > Sent: Monday, August 20, 2007 10:51 AM > > > To: [email protected] > > > Subject: Re: [xfire-user] > org.codehaus.xfire.XFireRuntimeException: > > > Could not invoke service.. Nested exception is > > > org.codehaus.xfire.fault.XFireFault: Could not unmarshall > type. > > > > > > Maybe try to turn off/on http chunking on client side. > > > > > > On 8/20/07, Jing Chang <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > > > > Hello everyone, > > > > > > > > > > > > > > > > Xfire: 1.2.6 > > > > > > > > Java 1.4.2 > > > > > > > > Resin: pro-3.0.18 > > > > > > > > > > > > > > > > I am writing a web service call using bottom up approach with > > > MyEclipse's > > > > web service wizard. The service call returns a quite complicated java > > > > object. I checked the generated WSDL and it looks right. But the > > > client gets > > > > XFireRuntimeException. Does anyone know why? I appreciate your help. > > > > > > > > > > > > > > > > Exception in thread "main" > > > > org.codehaus.xfire.XFireRuntimeException: Could not > invoke > > > > service.. Nested exception is > > > > org.codehaus.xfire.fault.XFireFault: Could not > unmarshall > > > > type. > > > > > > > > org.codehaus.xfire.fault.XFireFault: Could not > unmarshall > > > > type. > > > > > > > > at > > > > > org.codehaus.xfire.jaxb2.JaxbType.readObject(JaxbType.java:207) > > > > > > > > at > > > > > > > > org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBinding > > > Provider.java:154) > > > > > > > > at > > > > > > > > org.codehaus.xfire.service.binding.RPCBinding.readMessage(RPCBinding.jav > > > a:91) > > > > > > > > at > > > > > > > > org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.j > > > ava:42) > > > > > > > > at > > > > > > > > org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:1 > > > 31) > > > > > > > > at > > > > > org.codehaus.xfire.client.Client.onReceive(Client.java:382) > > > > > > > > at > > > > > > > > org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel. > > > java:139) > > > > > > > > at > > > > > > > > org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48) > > > > > > > > at > > > > > > > > org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java > > > :26) > > > > > > > > at > > > > > > > > org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:1 > > > 31) > > > > > > > > at > > > > > org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75) > > > > > > > > at > > > > > org.codehaus.xfire.client.Client.invoke(Client.java:335) > > > > > > > > at > > > > > org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77) > > > > > > > > at > > > > > org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57) > > > > > > > > at $Proxy12.getPanelData(Unknown Source) > > > > > > > > at > > > > > > > > com.lsr.services.ws.panel.PanelServiceClient.main(PanelServiceClient.jav > > > a:129) > > > > > > > > Caused by: javax.xml.bind.UnmarshalException > > > > > > > > - with linked exception: > > > > > > > > [com.ctc.wstx.exc.WstxIOException: CRLF expected at end > of > > > > chunk: -1/-1] > > > > > > > > at > > > > > > > > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamEx > > > ception(UnmarshallerImpl.java:401) > > > > > > > > at > > > > > > > > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unm > > > arshallerImpl.java:339) > > > > > > > > at > > > > > > > > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unma > > > rshallerImpl.java:316) > > > > > > > > at > > > > > org.codehaus.xfire.jaxb2.JaxbType.readObject(JaxbType.java:194) > > > > > > > > ... 15 more > > > > > > > > Caused by: com.ctc.wstx.exc.WstxIOException: CRLF > expected > > > > at end of chunk: -1/-1 > > > > > > > > at > > > > > com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:650) > > > > > > > > at > > > > > com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1071) > > > > > > > > at > > > > > > > > org.codehaus.xfire.util.stax.DepthXMLStreamReader.next(DepthXMLStreamRea > > > der.java:251) > > > > > > > > at > > > > > > > > org.codehaus.xfire.util.stax.DepthXMLStreamReader.next(DepthXMLStreamRea > > > der.java:251) > > > > > > > > at > > > > > > > > com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAX > > > StreamConnector.java:151) > > > > > > > > at > > > > > > > > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unm > > > arshallerImpl.java:337) > > > > > > > > ... 17 more > > > > > > > > Caused by: java.io.IOException: CRLF expected at end of chunk: -1/-1 > > > > > > > > at > > > > > > > > org.apache.commons.httpclient.ChunkedInputStream.readCRLF(ChunkedInputSt > > > ream.java:206) > > > > > > > > at > > > > > > > > org.apache.commons.httpclient.ChunkedInputStream.nextChunk(ChunkedInputS > > > tream.java:218) > > > > > > > > at > > > > > > > > org.apache.commons.httpclient.ChunkedInputStream.read(ChunkedInputStream > > > .java:175) > > > > > > > > at java.io.FilterInputStream.read(Unknown Source) > > > > > > > > at > > > > > > > > org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputSt > > > ream.java:107) > > > > > > > > at java.io.FilterInputStream.read(Unknown Source) > > > > > > > > at > > > > > > > > org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputSt > > > ream.java:126) > > > > > > > > at > > > > > com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:362) > > > > > > > > at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:110) > > > > > > > > at > > > > > com.ctc.wstx.io.MergedReader.read(MergedReader.java:101) > > > > > > > > at > > > > > com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84) > > > > > > > > at > > > > > > > > com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.jav > > > a:57) > > > > > > > > at > > > > > > > > com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:988 > > > ) > > > > > > > > at > > > > > > > > com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:995 > > > ) > > > > > > > > at > > > > > > > > com.ctc.wstx.sr.StreamScanner.getNextCharFromCurrent(StreamScanner.java: > > > 753) > > > > > > > > at > > > > > > > > com.ctc.wstx.sr.BasicStreamReader.readEndElem(BasicStreamReader.java:308 > > > 5) > > > > > > > > at > > > > > > > > com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:27 > > > 13) > > > > > > > > at > > > > > com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1004) > > > > > > > > ... 21 more > > > > > > > > > > > > > > > > > > > > > > > > Thanks, > > > > > > > > Jing > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe from this list please visit: > > > > > > > > http://xircles.codehaus.org/manage_email > > > > > > > > > > > > > > > > > -- > > > ----- > > > When one of our products stops working, we'll blame another vendor > > > within 24 hours. > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe from this list please visit: > > > > > > http://xircles.codehaus.org/manage_email > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe from this list please visit: > > > > > > http://xircles.codehaus.org/manage_email > > > > > > > > > > > > -- > > ----- > > When one of our products stops working, we'll blame another vendor > > within 24 hours. > > > > --------------------------------------------------------------------- > > To unsubscribe from this list please visit: > > > > http://xircles.codehaus.org/manage_email > > -- ----- When one of our products stops working, we'll blame another vendor within 24 hours. --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email
