Hi
On 08/11/11 14:31, Jon Barber wrote:
On Tuesday, November 08, 2011 1:24 PM, "Sergey Beryozkin"
<[email protected]> wrote:
Hi
On 08/11/11 13:16, Jon Barber wrote:
On Tuesday, November 08, 2011 10:02 AM, "Jon Barber"
<[email protected]> wrote:
Apologies for the delayed reply. Comments in line below.
On Monday, October 31, 2011 10:28 PM, "Sergey Beryozkin"
<[email protected]> wrote:
Hi
On 27/10/11 16:28, Jon Barber wrote:
Hi List,
I've managed to get CXF DOSGi 1.2 working with JSON responses following
the discussions I found on this list. However, I've hit a problem when I
try to use the OSGi HTTP Service via the
org.apache.cxf.ws.httpservice.context property.
So I've adapted the greeter rest sample from the distribution and added
the following properties to the services :
props.put("service.exported.interfaces", "*");
props.put("service.exported.configs", "org.apache.cxf.rs");
props.put("service.exported.intents", "HTTP");
props.put("org.apache.cxf.rs.provider","org.apache.cxf.jaxrs.provider.AegisElementProvider,org.apache.cxf.jaxrs.provider.AegisJSONProvider");
Then for the first case I register an address for the service to use,
e.g.
props.put("org.apache.cxf.rs.address","http://localhost:8282/greeter2");
This works like a charm : curl
http://localhost:8282/greeter2/greeter/greeting/fred
{"ns1.GreeterInfo":{"@xsi.type":"ns1:GreeterInfo","ns1.greetings":{"ns1.GreetingPhrase":[{"@xsi.type":"ns1:GreetingPhrase","ns1.name":"fred","ns1.phrase":"Hello"},{"@xsi.type":"ns1:GreetingPhrase","ns1.name":"fred","ns1.phrase":"Hoi"},{"@xsi.type":"ns1:GreetingPhrase","ns1.name":"fred","ns1.phrase":"Hola"},{"@xsi.type":"ns1:GreetingPhrase","ns1.name":"fred","ns1.phrase":"Bonjour"}]}}}
<snip/>
Caused by: java.lang.IllegalArgumentException: No SchemaFactory that
implements the schema language specified by:
http://www.w3.org/2001/XMLSchema could be loaded
at javax.xml.validation.SchemaFactory.newInstance(Unknown
Source)
at
org.apache.cxf.aegis.type.XMLTypeCreator.<clinit>(XMLTypeCreator.java:118)
This is using Java 1.6.0_27, CXF DOSGi 1.2 and Felix 3.2.2. I configured
felix as per the conf in the cxf distribution with the addition of the
jettison jar and my modified greeter bundle - config is viewable at
http://pastebin.com/m8Qa8pLw
I vaguely recall seeing something like that before.
Does it happen with Aegis only, when requesting JSON or XMl or both ?
Can you please try JAXB ?
OK, I'll try and find out how I use JAXB in place of Aegis. Could you
provide a pointer to some docs etc ?
OK, so I set the "org.apache.cxf.ws.databinding" property to "jaxb" and
I still get exactly the same stack trace.
That is a ws-specific property, given that JAX-RS is used, just remove
>>>>
props.put("org.apache.cxf.rs.provider","org.apache.cxf.jaxrs.provider.AegisElementProvider,org.apache.cxf.jaxrs.provider.AegisJSONProvider");
as in case of JAX-RS JAXB is selected by default.
"org.apache.cxf.rs.databinding" is kind of ignored by the JAX-RS
handler, unless "aegis" is set
thanks, Sergey
Hi Sergey,
So now I see :
"No message body writer has been found for response class GreeterInfo."
Please make sure GreeterInfo is annotated and the packages for
XmlRootElement (and other used annotations) are imported
Sergey
Jon.