users@jersey.java.net

Re: [Jersey] still problems with Enum

From: António Mota <amsmota_at_gmail.com>
Date: Sat, 31 Oct 2009 18:59:58 +0000

Oi Gaúcho, tudo bem?

My wild guess is that has to do with the visibility of the compiled
classes, for instance, to have classes with scope compile when they
are needed in runtime as well. Does this make some sense to you?

Try to look at here for some clues:

http://weblogs.java.net/blog/ludo/archive/2007/01/java_ee_5_apis.html

Other possibility is you're using one class version when compiling and
another one in runtime...

Hope it helps, but I'm not sure...

_______________________________________________

Melhores cumprimentos / Beir beannacht / Best regards

António Manuel dos Santos Mota

mobile: +353(0)877718363
mailto: amsmota_at_gmail.com
mailto: antonio.mota_at_meridianglobalservices.com
skype: amsmota
msn: antoniomsmota_at_hotmail.com
profile: http://www.linkedin.com/in/amsmota
cv: http://docs.google.com/View?id=ddghngm7_24fdw5hmc7
_______________________________________________



2009/10/31 Felipe Gaúcho <fgaucho_at_gmail.com>:
> An entity bean has the following field:
>
>        @XmlElement
>        @Enumerated(EnumType.STRING)
>        @Column(columnDefinition = "VARCHAR(20) NOT NULL DEFAULT 'NEW'")
>        private CompetitionStatus status;
>
>
> It works.. calling the URI with CURL it respond HTTP 200 and the
> entity is properly created in the database.
>
> curl -XPOST http://fgaucho.dyndns.org:8080/arena-http/competition/teste1
>
> * just change the name of the competition to have it created in the
> server side... for now it is just a test, don't worry.
>
> ------
>
> When I try to call the same URI with the Jersey API, it also creates
> the entity in the server side, but receiving the response I got the
> below error:
>
> ClientConfig config = new DefaultClientConfig();
> Client client = Client.create(config);
> WebResource arena =
> client.resource("http://fgaucho.dyndns.org:8080/arena-http");
> arena.addFilter(new LoggingFilter());
> return arena.path("competition").path("teste33").post(PujCompetitionEntity.class,
> null);
>
>
> [INFO] Compilation failure
> Failure executing javac, but could not parse the error:
> An exception has occurred in the compiler (1.6.0_16). Please file a
> bug at the Java Developer Connection
> (http://java.sun.com/webapps/bugreport)  after checking the Bug Parade
> for duplicates. Include your program and the following diagnostic in
> your report.  Thank you.
> com.sun.tools.javac.code.Symbol$CompletionFailure: class file for
> javax.persistence.EnumType not found
>
> any clue ?
>
> in the Java console:
>
> java.lang.ClassFormatError: Absent Code attribute in method that is
> not native or abstract in class file javax/persistence/EnumType
>        at java.lang.ClassLoader.defineClass1(Native Method)
>        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
>        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>        at java.lang.Class.getDeclaredMethods0(Native Method)
>        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
>        at java.lang.Class.getDeclaredMethods(Class.java:1791)
>        at sun.reflect.annotation.AnnotationType$1.run(AnnotationType.java:86)
>        at sun.reflect.annotation.AnnotationType$1.run(AnnotationType.java:83)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at sun.reflect.annotation.AnnotationType.<init>(AnnotationType.java:82)
>        at sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:66)
>        at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:202)
>        at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
>        at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
>        at java.lang.reflect.Field.declaredAnnotations(Field.java:1014)
>        at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:1007)
>        at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:175)
>        at com.sun.xml.internal.bind.v2.model.annotation.RuntimeInlineAnnotationReader.getAllFieldAnnotations(RuntimeInlineAnnotationReader.java:58)
>        at com.sun.xml.internal.bind.v2.model.annotation.RuntimeInlineAnnotationReader.getAllFieldAnnotations(RuntimeInlineAnnotationReader.java:42)
>        at com.sun.xml.internal.bind.v2.model.impl.ClassInfoImpl.findFieldProperties(ClassInfoImpl.java:360)
>        at com.sun.xml.internal.bind.v2.model.impl.ClassInfoImpl.getProperties(ClassInfoImpl.java:290)
>        at com.sun.xml.internal.bind.v2.model.impl.RuntimeClassInfoImpl.getProperties(RuntimeClassInfoImpl.java:165)
>        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:232)
>        at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:89)
>        at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:70)
>        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:198)
>        at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:84)
>        at com.sun.xml.internal.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:70)
>        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:304)
>        at com.sun.xml.internal.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:319)
>        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:430)
>        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:277)
>        at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1100)
>        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:143)
>        at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:110)
>        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:597)
>        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
>        at javax.xml.bind.ContextFinder.find(ContextFinder.java:376)
>        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
>        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
>        at com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider.getStoredJAXBContext(AbstractJAXBProvider.java:164)
>        at com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider.getJAXBContext(AbstractJAXBProvider.java:157)
>        at com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider.getUnmarshaller(AbstractJAXBProvider.java:116)
>        at com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider.getUnmarshaller(AbstractJAXBProvider.java:99)
>        at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:105)
>        at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:532)
>        at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:491)
>        at com.kenai.puj.arena.client.test.CompetitionIntegrationTest.createCompetition(CompetitionIntegrationTest.java:29)
>        at com.kenai.puj.arena.client.test.CompetitionIntegrationTest.roundtrip(CompetitionIntegrationTest.java:21)
>        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:597)
>        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
>        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
>