You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by bv...@orange-ftgroup.com on 2008/04/29 16:12:09 UTC
[JAX-RS] REST/JSON Issue : EmptyStackException
Hi,
Here is a problem wich make me crazy an half day :o/
having an jettison "EmptyStackException" when asking "application/bson"
but no problem when trying to get "text/xml" ...
My application got a lots of complex objects so i reproduce here the
problem in a small sample to understand it...
Got a simple HTTP GET method "getScores()" wich return a "Scores"
..wich is an array of "Score". And a "Score" is a "Person" P, and a
"Long" score.
@GET
@Path("/getScores/")
public Scores getScores() {
Scores s = new Scores();
Score s1 = new Score();
s1.setP(new Person("Joe"));
s1.setScore(new Long(10));
ArrayList<Score> scoresResult = new ArrayList<Score>();
scoresResult.add(s1);
s.setScore(scoresResult);
return s;
}
the "Scores" class :
@XmlRootElement(name = "Scores")
public class Scores {
private Collection<Score> scores;
public Scores() {
scores = new ArrayList<Score>();
}
public Collection<Score> getScore() {
return scores;
}
public void setScore(Collection<Score> s) {
this.scores = s;
}
}
the "Score" class :
@XmlRootElement(name = "Score")
public class Score implements Serializable{
private Person p;
private Long score;
(...constructor/getter/setters...)
}
You should see that there is an attribute named "score" as the class
name..(so the way to get EmptyStackException)
When i try to access "getScores" in REST/XML :
C:\>telnet myhost 8080
GET /api/rest/HW/getScores/ HTTP/1.0
Accept: text/xml
there is no problem, i got the result :
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml
Content-Length: 72
Date: Tue, 29 Apr 2008 13:44:23 GMT
Connection: close
<Scores><score><p><name>Joe</name></p><score>10</score></score></Scores>
But when i try to access getScores" in REST/json :
C:\>telnet myhost 8080
GET /api/rest/HW/getScores/ HTTP/1.0
Accept: application/json
An exception occur...
Here is the client result :
HTTP/1.1 500 Erreur Interne de Servlet
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 195
Date: Tue, 29 Apr 2008 13:46:49 GMT
Connection: close
<ns1:XMLFault
xmlns:ns1="http://cxf.apache.org/bindings/xformat"><ns1:faultstring
xmlns:ns1="http://cxf.apache.org/bindings/xformat">java.util.EmptyStackE
xception</ns1:faultstring></ns1:XMLFault>
Here is the server stack trace :
14:46 INFO [interceptor.JAXRSInInterceptor] - Found operation:
getScores
14:46 INFO [phase.PhaseInterceptorChain] - Interceptor has thrown
exception, unwinding now
java.util.EmptyStackException
at
org.codehaus.jettison.util.FastStack.peek(FastStack.java:39)
at
org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeEndElement(Mappe
dXMLStreamWriter.java:206)
at
com.sun.xml.bind.v2.runtime.output.XMLStreamWriterOutput.endTag(XMLStrea
mWriterOutput.java:144)
at
com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl.endTag(XmlOutpu
tAbstractImpl.java:120)
at
com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.endEleme
nt(NamespaceContextImpl.java:491)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.endElement(XMLSerializer.java:
310)
at
com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListB
ody(ArrayElementProperty.java:171)
at
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(Array
ERProperty.java:152)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInf
oImpl.java:322)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializ
er.java:589)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInf
oImpl.java:312)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java
:490)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328
)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:1
75)
at
org.apache.cxf.jaxrs.provider.JSONProvider.writeTo(JSONProvider.java:102
)
at
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRS
OutInterceptor.java:110)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:220)
at
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Outgoi
ngChainInterceptor.java:74)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:220)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
onObserver.java:78)
at
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
ation.java:92)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
vletController.java:214)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
ler.java:113)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
rvlet.java:170)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFSer
vlet.java:152)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
74)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
at java.lang.Thread.run(Thread.java:810)
The issue is here to rename the "score" attribute of the "Score" class.
This problem seems to be easy to solve, but when you got a complex
return type (ie. with an attribute called like a super-super-class name)
it's not so easy to find why this exception occur..
Anyway, i got 2 questions :
1) why is it not possible to name an attribute as a ancester class name
? Is it a jettison bug ? (if so, if anyone could follow it to the
jettison team..)
2) why, when accepting "application/json" content, i got a XML Fault
content (Content-Type: application/json but it's here text/xml fault
result !)
Version used :
- CXF 2.1 SNAPSHOT 11/04 : apache-cxf-2.1-incubator-20080411.173632-48
- I just replace JETTISON by the last snapshot 24/04 :
jettison-1.1-20080424.080632-3.jar
PS: sorry for my english which is not always simple to understand ;)
Regards
Brice Vandeputte
RE: [JAX-RS] REST/JSON Issue : EmptyStackException
Posted by bv...@orange-ftgroup.com.
You're right, this was fixed.
My lib path had the old version and the newest snapshot ..so the old version was loaded..
Sorry for that.
PS : version used jettison-1.1-20080424.080632-3.jar
Thanks for your answer Sergey
Regards
Brice
-----Message d'origine-----
De : Sergey Beryozkin [mailto:sergey.beryozkin@iona.com]
Envoyé : mardi 29 avril 2008 18:16
À : users@cxf.apache.org
Objet : Re: [JAX-RS] REST/JSON Issue : EmptyStackException
Hi
This should be fixed in http://jira.codehaus.org/browse/JETTISON-38, Jettison 1.1-SNAPSHOT ...
can you please download that version, replace the one shipped by CXF and see what happens ?
Cheers, Sergey
----- Original Message -----
From: <bv...@orange-ftgroup.com>
To: <us...@cxf.apache.org>
Sent: Tuesday, April 29, 2008 3:12 PM
Subject: [JAX-RS] REST/JSON Issue : EmptyStackException
Hi,
Here is a problem wich make me crazy an half day :o/
having an jettison "EmptyStackException" when asking "application/bson"
but no problem when trying to get "text/xml" ...
My application got a lots of complex objects so i reproduce here the
problem in a small sample to understand it...
Got a simple HTTP GET method "getScores()" wich return a "Scores"
..wich is an array of "Score". And a "Score" is a "Person" P, and a
"Long" score.
@GET
@Path("/getScores/")
public Scores getScores() {
Scores s = new Scores();
Score s1 = new Score();
s1.setP(new Person("Joe"));
s1.setScore(new Long(10));
ArrayList<Score> scoresResult = new ArrayList<Score>();
scoresResult.add(s1);
s.setScore(scoresResult);
return s;
}
the "Scores" class :
@XmlRootElement(name = "Scores")
public class Scores {
private Collection<Score> scores;
public Scores() {
scores = new ArrayList<Score>();
}
public Collection<Score> getScore() {
return scores;
}
public void setScore(Collection<Score> s) {
this.scores = s;
}
}
the "Score" class :
@XmlRootElement(name = "Score")
public class Score implements Serializable{
private Person p;
private Long score;
(...constructor/getter/setters...)
}
You should see that there is an attribute named "score" as the class
name..(so the way to get EmptyStackException)
When i try to access "getScores" in REST/XML :
C:\>telnet myhost 8080
GET /api/rest/HW/getScores/ HTTP/1.0
Accept: text/xml
there is no problem, i got the result :
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml
Content-Length: 72
Date: Tue, 29 Apr 2008 13:44:23 GMT
Connection: close
<Scores><score><p><name>Joe</name></p><score>10</score></score></Scores>
But when i try to access getScores" in REST/json :
C:\>telnet myhost 8080
GET /api/rest/HW/getScores/ HTTP/1.0
Accept: application/json
An exception occur...
Here is the client result :
HTTP/1.1 500 Erreur Interne de Servlet
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 195
Date: Tue, 29 Apr 2008 13:46:49 GMT
Connection: close
<ns1:XMLFault
xmlns:ns1="http://cxf.apache.org/bindings/xformat"><ns1:faultstring
xmlns:ns1="http://cxf.apache.org/bindings/xformat">java.util.EmptyStackE
xception</ns1:faultstring></ns1:XMLFault>
Here is the server stack trace :
14:46 INFO [interceptor.JAXRSInInterceptor] - Found operation:
getScores
14:46 INFO [phase.PhaseInterceptorChain] - Interceptor has thrown
exception, unwinding now
java.util.EmptyStackException
at
org.codehaus.jettison.util.FastStack.peek(FastStack.java:39)
at
org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeEndElement(Mappe
dXMLStreamWriter.java:206)
at
com.sun.xml.bind.v2.runtime.output.XMLStreamWriterOutput.endTag(XMLStrea
mWriterOutput.java:144)
at
com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl.endTag(XmlOutpu
tAbstractImpl.java:120)
at
com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.endEleme
nt(NamespaceContextImpl.java:491)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.endElement(XMLSerializer.java:
310)
at
com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListB
ody(ArrayElementProperty.java:171)
at
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(Array
ERProperty.java:152)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInf
oImpl.java:322)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializ
er.java:589)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInf
oImpl.java:312)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java
:490)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328
)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:1
75)
at
org.apache.cxf.jaxrs.provider.JSONProvider.writeTo(JSONProvider.java:102
)
at
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRS
OutInterceptor.java:110)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:220)
at
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Outgoi
ngChainInterceptor.java:74)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:220)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
onObserver.java:78)
at
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
ation.java:92)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
vletController.java:214)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
ler.java:113)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
rvlet.java:170)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFSer
vlet.java:152)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
74)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
at java.lang.Thread.run(Thread.java:810)
The issue is here to rename the "score" attribute of the "Score" class.
This problem seems to be easy to solve, but when you got a complex
return type (ie. with an attribute called like a super-super-class name)
it's not so easy to find why this exception occur..
Anyway, i got 2 questions :
1) why is it not possible to name an attribute as a ancester class name
? Is it a jettison bug ? (if so, if anyone could follow it to the
jettison team..)
2) why, when accepting "application/json" content, i got a XML Fault
content (Content-Type: application/json but it's here text/xml fault
result !)
Version used :
- CXF 2.1 SNAPSHOT 11/04 : apache-cxf-2.1-incubator-20080411.173632-48
- I just replace JETTISON by the last snapshot 24/04 :
jettison-1.1-20080424.080632-3.jar
PS: sorry for my english which is not always simple to understand ;)
Regards
Brice Vandeputte
----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: [JAX-RS] REST/JSON Issue : EmptyStackException
Posted by Sergey Beryozkin <se...@iona.com>.
Hi
This should be fixed in http://jira.codehaus.org/browse/JETTISON-38, Jettison 1.1-SNAPSHOT ...
can you please download that version, replace the one shipped by CXF and see what happens ?
Cheers, Sergey
----- Original Message -----
From: <bv...@orange-ftgroup.com>
To: <us...@cxf.apache.org>
Sent: Tuesday, April 29, 2008 3:12 PM
Subject: [JAX-RS] REST/JSON Issue : EmptyStackException
Hi,
Here is a problem wich make me crazy an half day :o/
having an jettison "EmptyStackException" when asking "application/bson"
but no problem when trying to get "text/xml" ...
My application got a lots of complex objects so i reproduce here the
problem in a small sample to understand it...
Got a simple HTTP GET method "getScores()" wich return a "Scores"
..wich is an array of "Score". And a "Score" is a "Person" P, and a
"Long" score.
@GET
@Path("/getScores/")
public Scores getScores() {
Scores s = new Scores();
Score s1 = new Score();
s1.setP(new Person("Joe"));
s1.setScore(new Long(10));
ArrayList<Score> scoresResult = new ArrayList<Score>();
scoresResult.add(s1);
s.setScore(scoresResult);
return s;
}
the "Scores" class :
@XmlRootElement(name = "Scores")
public class Scores {
private Collection<Score> scores;
public Scores() {
scores = new ArrayList<Score>();
}
public Collection<Score> getScore() {
return scores;
}
public void setScore(Collection<Score> s) {
this.scores = s;
}
}
the "Score" class :
@XmlRootElement(name = "Score")
public class Score implements Serializable{
private Person p;
private Long score;
(...constructor/getter/setters...)
}
You should see that there is an attribute named "score" as the class
name..(so the way to get EmptyStackException)
When i try to access "getScores" in REST/XML :
C:\>telnet myhost 8080
GET /api/rest/HW/getScores/ HTTP/1.0
Accept: text/xml
there is no problem, i got the result :
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml
Content-Length: 72
Date: Tue, 29 Apr 2008 13:44:23 GMT
Connection: close
<Scores><score><p><name>Joe</name></p><score>10</score></score></Scores>
But when i try to access getScores" in REST/json :
C:\>telnet myhost 8080
GET /api/rest/HW/getScores/ HTTP/1.0
Accept: application/json
An exception occur...
Here is the client result :
HTTP/1.1 500 Erreur Interne de Servlet
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 195
Date: Tue, 29 Apr 2008 13:46:49 GMT
Connection: close
<ns1:XMLFault
xmlns:ns1="http://cxf.apache.org/bindings/xformat"><ns1:faultstring
xmlns:ns1="http://cxf.apache.org/bindings/xformat">java.util.EmptyStackE
xception</ns1:faultstring></ns1:XMLFault>
Here is the server stack trace :
14:46 INFO [interceptor.JAXRSInInterceptor] - Found operation:
getScores
14:46 INFO [phase.PhaseInterceptorChain] - Interceptor has thrown
exception, unwinding now
java.util.EmptyStackException
at
org.codehaus.jettison.util.FastStack.peek(FastStack.java:39)
at
org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeEndElement(Mappe
dXMLStreamWriter.java:206)
at
com.sun.xml.bind.v2.runtime.output.XMLStreamWriterOutput.endTag(XMLStrea
mWriterOutput.java:144)
at
com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl.endTag(XmlOutpu
tAbstractImpl.java:120)
at
com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.endEleme
nt(NamespaceContextImpl.java:491)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.endElement(XMLSerializer.java:
310)
at
com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListB
ody(ArrayElementProperty.java:171)
at
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(Array
ERProperty.java:152)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInf
oImpl.java:322)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializ
er.java:589)
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInf
oImpl.java:312)
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java
:490)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328
)
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:1
75)
at
org.apache.cxf.jaxrs.provider.JSONProvider.writeTo(JSONProvider.java:102
)
at
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRS
OutInterceptor.java:110)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:220)
at
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Outgoi
ngChainInterceptor.java:74)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:220)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
onObserver.java:78)
at
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
ation.java:92)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
vletController.java:214)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
ler.java:113)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
rvlet.java:170)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFSer
vlet.java:152)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
74)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
at java.lang.Thread.run(Thread.java:810)
The issue is here to rename the "score" attribute of the "Score" class.
This problem seems to be easy to solve, but when you got a complex
return type (ie. with an attribute called like a super-super-class name)
it's not so easy to find why this exception occur..
Anyway, i got 2 questions :
1) why is it not possible to name an attribute as a ancester class name
? Is it a jettison bug ? (if so, if anyone could follow it to the
jettison team..)
2) why, when accepting "application/json" content, i got a XML Fault
content (Content-Type: application/json but it's here text/xml fault
result !)
Version used :
- CXF 2.1 SNAPSHOT 11/04 : apache-cxf-2.1-incubator-20080411.173632-48
- I just replace JETTISON by the last snapshot 24/04 :
jettison-1.1-20080424.080632-3.jar
PS: sorry for my english which is not always simple to understand ;)
Regards
Brice Vandeputte
----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland