CXF 2.1.x or 2.0.x?

I think a straight "Set" should work, but possibly not the specific subtypes. Not really sure. I know that JAXB 2.1 enhanced the support for Sets and maps a bit, but I don't know all the details.

That said, if using CXF 2.1.1, you can get it to work by writing an XmlAdapter and registering it with the @XmlJavaTypeAdapter annotation. In 2.1.x, the java_first_jaxws sample in the distribution shows how to do that for a Map.

Dan



On Jul 9, 2008, at 4:46 PM, Arul Dhesiaseelan wrote:

Hello,

I have a following method in my web service interface.

public SortedSet<AgentInfo> getAll();

In my implementation, I use TreeSet internally. When I invoke this method from a client, I get the following error.

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Marshalling Error: java.util.TreeSet at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java: 199)
  at $Proxy56.getAll(Unknown Source)
  at impl.services.client.AdminClient.getAll(AdminClient.java:114)
  at impl.services.testing.TestAdmin.main(TestAdmin.java:40)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java: 90) Caused by: org.apache.cxf.binding.soap.SoapFault: Marshalling Error: java.util.TreeSet at org .apache .cxf .binding .soap .interceptor .Soap11FaultInInterceptor .handleMessage(Soap11FaultInInterceptor.java:70) at org .apache .cxf .binding .soap .interceptor .Soap11FaultInInterceptor .handleMessage(Soap11FaultInInterceptor.java:35) at org .apache .cxf .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 221) at org .apache .cxf .interceptor .AbstractFaultChainInitiatorObserver .onMessage(AbstractFaultChainInitiatorObserver.java:96) at org .apache .cxf .binding .soap .interceptor .CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:65) at org .apache .cxf .binding .soap .interceptor .CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) at org .apache .cxf .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 221)
  at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449)
at org.apache.cxf.transport.http.HTTPConduit $WrappedOutputStream.handleResponse(HTTPConduit.java:1996) at org.apache.cxf.transport.http.HTTPConduit $WrappedOutputStream.close(HTTPConduit.java:1832) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java: 66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:591) at org.apache.cxf.interceptor.MessageSenderInterceptor $ MessageSenderEndingInterceptor .handleMessage(MessageSenderInterceptor.java:62) at org .apache .cxf .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 221)
  at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
  at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java: 73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java: 178)
  ... 8 more


Any clues on this error? Is SortedSet/TreeSet not supported JAXB type?

Please clarify.

Thank you,
Arul


---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog




Reply via email to