users@jersey.java.net

Re: [Jersey] I can't get a POST message to work

From: Jakub Podlesak <Jakub.Podlesak_at_Sun.COM>
Date: Mon, 26 Jan 2009 10:32:07 +0100

Hi Jeff,

would you be so kind and enter an issue at netbeans issuezilla [1],
with [rest] as a subcomponent. If netbeans plugin adds the other jersey
jars, it definitely seems as a bug to me.

~Jakub

[1]http://www.netbeans.org/issues/enter_bug.cgi?component=websvc

On Fri, Jan 23, 2009 at 09:15:30AM -0700, Jeff Schmidt wrote:
> Hi Paul:
>
> Thanks a lot for your suggestions. Trying this process yet again from
> scratch, I was able to create the Netbeans library with the 1.0.1 jars and
> actually got the project to run. :) Yeah. Unfortunately, this only
> partially works with the Netbeans/JAX-RS integration. That is, if I go and
> create a new resource using the Container/Item pattern, then all the 1.0
> jars get added to the project. Then I end up with both 1.0 and 1.0.1.
> Perhaps I did not delete all of those 1.0 jars last time?
>
> If I remove all of the 1.0 jars, then the project will run again. So, I
> guess if I make use of the Netbeans 6.5 JAX-RS integration features, if I
> then go and delete the added 1.0 libraries, this might work out fine,
> though kind of clumsily.
>
> I realize this is not a Netbeans forum, but I figure there are a lot of
> Netbeans users out there working with JAX-RS/Jersey projects, encountering
> the same issues. I can live with the current arrangement, but I'm just
> curious how Netbeans will adopt new Jersey releases in the future. Will
> this be via the Netbeans update process? I won't need to typically be on
> the bleeding edge of Jersey releases, but even then it does not look like
> official Netbeans will be keeping up.
>
> Thanks!
>
> Jeff
>
> On Jan 23, 2009, at 6:00 AM, Paul Sandoz wrote:
>
>>
>> On Jan 23, 2009, at 1:55 PM, Paul Sandoz wrote:
>>
>>>
>>> On Jan 22, 2009, at 3:35 PM, Jeff Schmidt wrote:
>>>
>>>> Hi Jakub:
>>>>
>>>> I too am having the problem with the InstantiationException and
>>>> JSONListElementProvider when I try to use the Jersey 1.0.1 jars in
>>>> Netbeans 6.5. I really need to start working with Craig's multipart API
>>>> and I see it is included in 1.0.1. Jersey 1.0 is what is available in
>>>> Netbeans 6.5. I tried to update Jersey by creating a new library in
>>>> Netbeans and included the following jar files, which I basically got
>>>> from the Jersey 1.0.1 dependencies page.
>>>>
>>>> ./asm-3.1.jar
>>>> ./grizzly-servlet-webserver-1.8.6.3.jar
>>>> ./http-20070405.jar
>>>> ./jaxb-api-2.1.jar
>>>> ./jaxb-impl-2.1.jar
>>>> ./jaxb-xjc.jar
>>>> ./jdom-1.0.jar
>>>> ./jersey-atom-1.0.1.jar
>>>> ./jersey-core-1.0.1.jar
>>>> ./jersey-fastinfoset-1.0.1.jar
>>>> ./jersey-json-1.0.1.jar
>>>> ./jersey-server-1.0.1-javadoc.jar
>>>> ./jersey-server-1.0.1.jar
>>>> ./jettison-1.0.1.jar
>>>> ./jsr173-api-1.0.jar
>>>> ./jsr311-api-1.0.jar
>>>> ./rome-0.9.jar
>>>> ./stax-api-1.0-2.jar
>>>>
>>>> When starting up the app server (Tomcat or Glassfish) I get several:
>>>>
>>>> The provider class, class
>>>> com.sun.jersey.impl.provider.entity.JSONListElementProvider, could not
>>>> be instantiated
>>> ^
>>> |
>>> This is definitely a 1.0 class because we
>>> changed the package name to include
>>> json after jersey.
>>>
>>> So, this confirms what i thought in my previous email: for some reason
>>> there are still Jersey 1.0 jars hanging around in the class path.
>>>
>>
>> Grrr... sigh... tired today... what i wrote above is not correct (that
>> package name changed in 1.0.2), but there is still some issue related to
>> this in the difference between 1.0 and 1.0.1, namely Jersey 1.0 seems to
>> be still around and is trying to use jersey 1.0.1.
>>
>> Paul.
>>
>>
>>> Paul.
>>>
>>>>
>>>> java.lang.InstantiationException:
>>>> com.sun.jersey.impl.provider.entity.JSONListElementProvider
>>>>
>>>> Browsing jersey-json-1.0.1.jar within Netbeans, I can see that class is
>>>> abstract.
>>>>
>>>> When I tried the sample customer DB app as you suggested below, it
>>>> worked just fine using the stock Jersey 1.0 library.
>>>>
>>>> What is the proper combination of jar files one uses to create a library
>>>> in Netbeans 6.5 that will allow me to use the IDE to develop using
>>>> Jersey 1.0.1?
>>>>
>>>> Thanks!
>>>>
>>>> Jeff
>>>>
>>>>
>>>> On Jan 19, 2009, at 8:38 AM, Jakub Podlesak wrote:
>>>>
>>>>>
>>>>> Hello Eric,
>>>>>
>>>>> On Sun, Jan 18, 2009 at 10:12:55AM -0600, Marsh Eric wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I'm developing an iPhone application that needs to pass information
>>>>>> between
>>>>>> the iPhone and a remote database. Using web services seemed to be a
>>>>>> good
>>>>>> strategy so I downloaded the latest version of Netbeans, spent a day
>>>>>> or two
>>>>>> reading and working through the web services examples. Doing some web
>>>>>> searches I found that most iPhone developers are using JSON so I
>>>>>> downloaded
>>>>>> an iPhone JSON library and went to work at developing a communications
>>>>>> channel between the remote device and the database.
>>>>>>
>>>>>> I don't know if it makes any difference but I'm developing on a Mac.
>>>>>>
>>>>>> First of all, when I tried to deploy I was getting some errors related
>>>>>> to
>>>>>> JSON. They are:
>>>>>>
>>>>>> SEVERE: The provider class, class
>>>>>> com.sun.jersey.impl.provider.entity.JSONJAXBElementProvider, could not
>>>>>> be
>>>>>> instantiated
>>>>>> SEVERE: The provider class, class
>>>>>> com.sun.jersey.impl.provider.entity.JSONListElementProvider, could not
>>>>>> be
>>>>>> instantiated
>>>>>> SEVERE: The provider class, class
>>>>>> com.sun.jersey.impl.provider.entity.JSONRootElementProvider, could not
>>>>>> be
>>>>>> instantiated
>>>>>>
>>>>>> I thought that I'd go back and look at those problems later as the app
>>>>>> did
>>>>>> seem to deploy even with the errors.
>>>>>
>>>>> I would recommend you to try resolve the above errors in the first
>>>>> place
>>>>> as it seems something is wrong with your configuration.
>>>>> Are you using the latest NetBeans 6.5? If so,
>>>>> could you try to create a new project with:
>>>>> [New Project]->[Samples]->[WebServices]->[Customer Database (RESTful)]
>>>>> then try to deploy. Same errors?
>>>>> Then please try to submit a new bug report against NetBeans RESTful WS
>>>>> plugin at [1]
>>>>> Another thing you may try is to run your NetBeans with a fresh userdir.
>>>>> Then you need to use --userdir rest-app-nbdir command line option.
>>>>>
>>>>>
>>>>>>
>>>>>> It wasn't too tough getting the database to talk to the iPhone.
>>>>>> However
>>>>>> I've spent something like a week and a half trying to get the
>>>>>> communications to work going the other way. Initially when I was
>>>>>> getting
>>>>>> errors and exceptions I thought that my problem was that I simply
>>>>>> didn't
>>>>>> understand the JSON protocol. Consequently I stopped trying to get the
>>>>>> iPhone to talk to the web services and started to experiment with the
>>>>>> netbeans "Test RESTful web services" web interface. I would do a get
>>>>>> to
>>>>>> grab some data from my database, tweak the results and try to POST
>>>>>> them
>>>>>> back to the database. I could never get this to work. I had a number
>>>>>> of
>>>>>
>>>>> The simplest test scenario to try out here is to
>>>>>
>>>>> - GET some data from a particular containee resource
>>>>> - POST the very same *unchanged* data to the corresponding container
>>>>> resource
>>>>>
>>>>> Then, you should get something like
>>>>> Entity already exists exception (coming from db layer)
>>>>> Which in fact means, you entity gets unmarshalled all right.
>>>>> Could you please try out something similar (without touching the data)
>>>>> at your application?
>>>>>
>>>>>
>>>>>> returned error codes depending on what I would try to POST but I
>>>>>> finally
>>>>>> focused on the fact that I was getting messages similar to the
>>>>>> following:
>>>>>>
>>>>>>
>>>>>> javax.ws.rs.WebApplicationException: javax.xml.bind.UnmarshalException
>>>>>> -
>>>>>> with linked exception: [org.xml.sax.SAXParseException: Content is not
>>>>>> allowed in prolog.] at
>>>>>> converter.UriResolver.resolve(UriResolver.java:81)
>>>>>>
>>>>>> I've been doing some reading and it appears that in Jersey JSON is
>>>>>> layered
>>>>>> over XML. Since this exception appears to be coming from the XML layer
>>>>>> it
>>>>>> looks like I would have to step through the Jersey source to figure
>>>>>> out
>>>>>> what's going on. I suspect that the problem is related to the
>>>>>> exceptions
>>>>>> that were happening on deployment that I cited earlier.
>>>>>>
>>>>>
>>>>> I suspect that is the case. If the customer db application works for
>>>>> you,
>>>>> you might want to check, you web app uses the same jersey related
>>>>> libraries.
>>>>> (Please make sure you do not mix jersey jar versions)
>>>>>
>>>>> If none of the above helps, would you be able to send out your project
>>>>> files so that i could have a closer look?
>>>>>
>>>>> ~Jakub
>>>>>
>>>>> [1]http://www.netbeans.org/community/issues.html
>>>>>
>>>>>> I downloaded the source so that I could build and debug in the Jersey
>>>>>> and
>>>>>> Grizzly layers. This took a couple of hours. To my surprise there was
>>>>>> a
>>>>>> couple of places where the source wouldn't build as downloaded. One is
>>>>>> in
>>>>>> ContainerResponse.java where the compiler complained that at line 216
>>>>>> it
>>>>>> couldn't find getMessageBodyWriterMediaTypes. Another problem is at
>>>>>> line
>>>>>> 292 in BasicValidator.java where it couldn't find
>>>>>> ERROR_SUBRES_LOC_HAS_ENTITY_PARAM. I did some quick hacks just to get
>>>>>> the
>>>>>> application to build. However it wouldn't deploy and at that point I
>>>>>> decided that I'd just spent too much time on this and decided to yell
>>>>>> for
>>>>>> help.
>>>>>>
>>>>>> I'd really like to be able to use Glassfish, Netbeans and Jersey but I
>>>>>> really seem to be stuck. If I can't get this to fly I may have to
>>>>>> backtrack
>>>>>> and do something entirely different. It doesn't appear that I can do a
>>>>>> remote database connection from the iPhone so web services looks like
>>>>>> the
>>>>>> best solution. The problem appears to be at the server end, not the
>>>>>> iPhone
>>>>>> end anyway. I'm really kind of surprised that I've had so much
>>>>>> trouble.
>>>>>> Regardless, I need to break through this roadblock and get this app
>>>>>> done.
>>>>>>
>>>>>> Suggestions or help anyone?
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>>
>>>>
>>>> --
>>>> Jeff Schmidt
>>>> 535 Consulting
>>>> jas_at_535consulting.com
>>>> (408) 205-7697
>>>>
>>>>
>>>>
>>>>
>>>
>>
>