Did you link in something similar to the MyObjectMapperProvider class as
given in the jacksonjsonprovider sample?
(
http://java.net/projects/jersey/sources/svn/content/trunk/jersey/samples/jacksonjsonprovider/src/main/java/com/sun/jersey/samples/jacksonjsonprovider/MyApplication.java?rev=4816)
That might be the issue.
Glen
On 02/21/2012 08:40 PM, Gonfi den Tschal wrote:
> having troubles getting marshalling to work.
>
> setup:
> - spring
> - jersey
> - grizzly
>
>
> maven dependencies:
>
> <dependency>
> <groupId>com.sun.jersey.contribs</groupId>
> <artifactId>jersey-spring</artifactId>
> <version>1.11</version>
> <exclusions>
> <exclusion>
> <groupId>org.springframework</groupId>
> <artifactId>spring</artifactId>
> </exclusion>
> <exclusion>
> <groupId>org.springframework</groupId>
> <artifactId>spring-core</artifactId>
> </exclusion>
> <exclusion>
> <groupId>org.springframework</groupId>
> <artifactId>spring-web</artifactId>
> </exclusion>
> <exclusion>
> <groupId>org.springframework</groupId>
> <artifactId>spring-beans</artifactId>
> </exclusion>
> <exclusion>
> <groupId>org.springframework</groupId>
> <artifactId>spring-context</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
> <dependency>
> <groupId>com.sun.jersey</groupId>
> <artifactId>jersey-json</artifactId>
> <version>1.11</version>
> </dependency>
> <dependency>
> <groupId>com.sun.jersey</groupId>
> <artifactId>jersey-grizzly2</artifactId>
> <version>1.11</version>
> </dependency>
>
> starting the server:
> ResourceConfig rc = new DefaultResourceConfig();
> rc.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING,
> Boolean.TRUE);
> IoCComponentProviderFactory factory = new
> SpringComponentProviderFactory(rc, context);
> try {
> GrizzlyServerFactory.createHttpServer(getBaseUri(),
> rc, factory);
> } catch (IOException e) {
> throw new RuntimeException("Failed starting REST web
> server!", e);
> }
>
> the service:
>
> @Service
> @Path("/ping")
> @Produces({"application/json"})
> public class PingService {
>
> @GET @Path("/foo")
> public String foo(@QueryParam("bar") final Bar bar) {
> }
>
> }
>
> sending a type String instead of Bar works fine. as soon as i send
> objects i get all kinds of errors.
>
> bar class:
>
> public class Bar {
>
> private String field1;
> private String field2;
>
> public String getField1() {
> return field1;
> }
> public void setField1(String field1) {
> this.field1 = field1;
> }
>
> public String getField2() {
> return field2;
> }
> public void setField2(String field2) {
> this.field2 = field2;
> }
> }
>
> with this setup, when starting the server, i get:
>
> SEVERE: Missing dependency for method public java.lang.String
> mypackage.PingService.foo(mypackage.Bar) at parameter at index 0
> SEVERE: Method, public java.lang.String
> mypackage.PingService.foo(mypackage.Bar), annotated with GET of
> resource, class mypackage.PingService, is not recognized as valid
> resource method.
>
>
> if i annotate the Bar class with @XmlRootElement (which i don't want,
> because i cannot touch the classes i would need to transfer) then the
> server starts, but calling the method results in a 404 even though the
> get request looks fine.
>
> most examples out there just use strings as inputs.
>
> been trying for hours, giving up. any idea what else i should check or
> try or read?
--
Glen Mazza
Talend Community Coders
coders.talend.com
blog: www.jroller.com/gmazza