Yes, I'm using JDK 5 and don't have JDK 6 on my machine.
In general, I think all our samples should be compiled with JDK5.
-Arun
Jakub Podlesak wrote:
> Hi Arun,
>
> I have added the example to the Jersey repository. It should be also
> part of recently issued stable version snapshot 0.2.1 available at:
> https://jersey.dev.java.net/servlets/ProjectDocumentList?folderID=7654&expandFolder=7654&folderID=0
>
> You might want to try it from there.
>
> Thanks,
>
> ~Jakub
>
> P.S. Your issue can be IMHO also resolved by using jdk6 instead of jdk5.
> You are using jdk5 now, right?
>
>
> On Tue, Sep 04, 2007 at 09:52:48PM -0700, Arun Gupta wrote:
>> After removing the private directory, I'm getting the following error
>> during build time:
>>
>> -- cut here --
>> Created dir: C:\workarea\samples\JsonFromJaxb\build\web\WEB-INF\classes
>> Processing resource classes
>> Problem encountered during annotation processing;
>> see stacktrace below for more information.
>> java.lang.ClassFormatError: Illegal class modifiers in class
>> com/sun/ws/rest/tools/webapp/writer/package-info: 0x1600
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
>> at
>> com.sun.istack.tools.ParallelWorldClassLoader.findClass(ParallelWorldClassLoader.java:90)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:242)
>> at java.lang.Package.getPackageInfo(Package.java:350)
>> at java.lang.Package.getAnnotation(Package.java:361)
>> at com.sun.xml.txw2.TXW.getTagName(TXW.java:60)
>> at com.sun.xml.txw2.TXW.create(TXW.java:83)
>> at
>> com.sun.ws.rest.tools.webapp.writer.WebAppWriter.writeTo(WebAppWriter.java:58)
>> at
>> com.sun.ws.rest.tools.webapp.writer.WebAppWriter.write(WebAppWriter.java:66)
>> at
>> com.sun.ws.rest.tools.annotation.apt.UriTemplateProcessor.process(UriTemplateProcessor.java:214)
>> at
>> com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
>> at com.sun.tools.apt.comp.Apt.main(Apt.java:454)
>> at
>> com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:448)
>> at com.sun.tools.apt.main.Main.compile(Main.java:1075)
>> at com.sun.tools.apt.main.Main.compile(Main.java:938)
>> at com.sun.tools.apt.Main.processing(Main.java:95)
>> at com.sun.tools.apt.Main.process(Main.java:85)
>> at com.sun.tools.apt.Main.process(Main.java:67)
>> at com.sun.ws.rest.tools.RsGenTool.run(RsGenTool.java:36)
>> 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.sun.ws.rest.tools.Invoker.invoke(Invoker.java:104)
>> at com.sun.ws.rest.tools.RsGen.main(RsGen.java:31)
>> -- cut here --
>>
>> and
>>
>> -- cut here --
>> Initializing Sun's JavaServer Faces implementation (1.2_04-b20-p03) for
>> context ''
>> "DPL8015: Invalid Deployment Descriptors in Deployment descriptor file
>> WEB-INF/web.xml in archive [web].
>> Line -1 Column -1 -- Premature end of file."
>> "DPL8005: Deployment Descriptor parsing failure : Premature end of file."
>> Exception occured in J2EEC Phaseorg.xml.sax.SAXParseException: Premature
>> end of file.
>> com.sun.enterprise.deployment.backend.IASDeploymentException: Error
>> loading deployment descriptors for module [JsonFromJaxb] Line -1 Column
>> -1 -- Deployment descriptor file WEB-INF/web.xml in archive [web].
>> Premature end of file.
>> at
>> com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:380)
>> at
>> com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:423)
>> at
>> com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:157)
>>
>> -- cut here --
>>
>> during runtime.
>>
>> Any idea what might be wrong ?
>>
>> -Arun
>> Jakub Podlesak wrote:
>>> Hi Arun,
>>>
>>> The NetBeans project should use jar files from it's [lib] subdirectory. I
>>> have rewritten the dependencies. (If you look at the snapshot you will
>>> realize
>>> I run it from outside of Jersey dir structure)
>>>
>>> But you right, I forgot to remove [nbproject/private] directory, which
>>> keeps info about the files within my filesystem. It can probably cause
>>> issues.
>>>
>>> Could you please remove the [private] dir and try again?
>>> I will fix the issue and update the project on the web.
>>>
>>> Thanks,
>>>
>>> ~Jakub
>>>
>>> On Fri, Aug 31, 2007 at 11:56:52AM -0700, Arun Gupta wrote:
>>>> Thanks Jakub.
>>>>
>>>> The NetBeans project seems to be using Jersey directory structure for
>>>> resolving libraries and that gives the error attached in the image. I
>>>> resolved the references but building the project gives the following
>>>> error:
>>>>
>>>> C:\workarea\samples\JsonFromJaxb\JsonFromJaxb\build.xml:22: taskdef
>>>> class com.sun.ws.rest.tools.ant.WebResourcesProcessorTask cannot be found
>>>>
>>>> -Arun
>>>>
>>>> Jakub Podlesak wrote:
>>>>> Hi Arun,
>>>>>
>>>>> please look at the sample linked from:
>>>>> http://blogs.sun.com/japod/entry/json_representation_of_jaxb_object
>>>>>
>>>>> ~Jakub
>>>>>
>>>>> On Fri, Aug 31, 2007 at 08:13:36AM -0700, Arun Gupta wrote:
>>>>>>> What you need to do is to create a JAXB bean with @XmlRootElement on
>>>>>>> the class. Write a JAX-RS bean with a method that returns the JAXB
>>>>>>> bean and is annotated with @ProduceMime("application/json") something
>>>>>>> like:
>>>>>>>
>>>>>>> @XmlRootElement
>>>>>>> public class States {
>>>>>>> ...
>>>>>>> }
>>>>>>>
>>>>>>> @UriTemplate("states")
>>>>>>> public class StatesResource {
>>>>>>>
>>>>>>> @HttpMethod
>>>>>>> @ProduceMime("application/json")
>>>>>>> States getStates() {
>>>>>>> ...
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> The JAXB provider will automagically convert the returned States class
>>>>>>> instance into JSON for you.
>>>>>> This is reasonable. I tried it exactly this way without looking at the
>>>>>> sample and got an empty response.
>>>>>>
>>>>>>> I'm sure Jakub's example will show this in
>>>>>>> more detail.
>>>>>> This sample is not configured to run by default:
>>>>>>
>>>>>> -- cut here --
>>>>>> init:
>>>>>> deps-jar:
>>>>>> Processing resource classes
>>>>>> compile:
>>>>>> run:
>>>>>> Exception in thread "main" java.lang.IllegalArgumentException
>>>>>> at com.sun.ws.rest.samples.storageservice.Main.main(Main.java:85)
>>>>>> Java Result: 1
>>>>>> BUILD SUCCESSFUL (total time: 4 seconds)
>>>>>> -- cut here --
>>>>>>
>>>>>> A default command-line argument is missing.
>>>>>>
>>>>>> -Arun
>>>>>>> Marc.
>>>>>>>
>>>>>>>>>> use. You might not be able to get the exact JSON format you show
>>>>>>>>>> below but I'd bet you could get close just using some of the JAXB
>>>>>>>>>> annotations.
>>>>>>>>>>
>>>>>>>>>> Marc.
>>>>>>>>>>
>>>>>>>>>> On Aug 30, 2007, at 2:33 PM, Arun Gupta wrote:
>>>>>>>>>>
>>>>>>>>>>> In order to return a JSON array like:
>>>>>>>>>>>
>>>>>>>>>>> [{"name":"California","value":"California"},{"name":"New
>>>>>>>>>>> York","value":"New York"},{"name":"Alabama" ,"value":"Alabama"},
>>>>>>>>>>> {"name":"Texas","value":"Texas"}]
>>>>>>>>>>>
>>>>>>>>>>> I have to write the following code:
>>>>>>>>>>>
>>>>>>>>>>> -- cut here --
>>>>>>>>>>> @HttpMethod("GET")
>>>>>>>>>>> @ProduceMime("application/json")
>>>>>>>>>>> public JSONArray getMessage() throws JSONException {
>>>>>>>>>>> String[] states = { "California", "New York", "Alabama",
>>>>>>>>>>> "Texas"};
>>>>>>>>>>> JSONArray array = new JSONArray();
>>>>>>>>>>> for (String s : states) {
>>>>>>>>>>> JSONObject item = new JSONObject();
>>>>>>>>>>> item.put("name", s).put("value", s);
>>>>>>>>>>> array.put(item);
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> return array;
>>>>>>>>>>> }
>>>>>>>>>>> -- cut here --
>>>>>>>>>>>
>>>>>>>>>>> I think this is too involving and low-level. Can the code be
>>>>>>>>>>> something like the following ?
>>>>>>>>>>>
>>>>>>>>>>> -- cut here --
>>>>>>>>>>> @JSONObject
>>>>>>>>>>> ItemBean {
>>>>>>>>>>> ItemBean(String name, String value) { ... }
>>>>>>>>>>>
>>>>>>>>>>> @JSONObjectKey
>>>>>>>>>>> public String getName() { ... }
>>>>>>>>>>>
>>>>>>>>>>> @JSONObjectValue("value")
>>>>>>>>>>> public String getNameValue() { ... }
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> @HttpMethod("GET")
>>>>>>>>>>> @ProduceMime("application/json")
>>>>>>>>>>> public List<ItemBean> getMessage() {
>>>>>>>>>>> String[] states = { "California", "New York", "Alabama",
>>>>>>>>>>> "Texas"};
>>>>>>>>>>> List<ItemBean> list = new ArrayList<ItemBean>();
>>>>>>>>>>> for (String s : states) {
>>>>>>>>>>> ItemBean bean = new ItemBean(s, s);
>>>>>>>>>>> list.add(bean);
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> return list;
>>>>>>>>>>> }
>>>>>>>>>>> -- cut here --
>>>>>>>>>>>
>>>>>>>>>>> This will require defining new annotations JSONObject,
>>>>>>>>>>> JSONObjectKey & JSONObjectValue. I think this is more natural to a
>>>>>>>>>>> Java developer.
>>>>>>>>>>>
>>>>>>>>>>> -Arun
>>>>>>>>>>> --
>>>>>>>>>>> Web Technologies and Standards
>>>>>>>>>>> Sun Microsystems, Inc.
>>>>>>>>>>> Blog: http://blogs.sun.com/arungupta
>>>>>>>>>>>
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>>>>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>>>>>>>
>>>>>>>>>> ---
>>>>>>>>>> Marc Hadley <marc.hadley at sun.com>
>>>>>>>>>> CTO Office, Sun Microsystems.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>>>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>>>> --
>>>>>>>> Web Technologies and Standards
>>>>>>>> Sun Microsystems, Inc.
>>>>>>>> Blog: http://blogs.sun.com/arungupta
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>>>>
>>>>>>> ---
>>>>>>> Marc Hadley <marc.hadley at sun.com>
>>>>>>> CTO Office, Sun Microsystems.
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>>>
>>>>>> --
>>>>>> Web Technologies and Standards
>>>>>> Sun Microsystems, Inc.
>>>>>> Blog: http://blogs.sun.com/arungupta
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>
>>>> --
>>>> Web Technologies and Standards
>>>> Sun Microsystems, Inc.
>>>> Blog: http://blogs.sun.com/arungupta
>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>
>> --
>> Web Technologies and Standards
>> Sun Microsystems, Inc.
>> Blog: http://blogs.sun.com/arungupta
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
--
Web Technologies and Standards
Sun Microsystems, Inc.
Blog: http://blogs.sun.com/arungupta