users@jersey.java.net

Re: [Jersey] Passing a String with slashes, hyphens using _at_Path, @PathParameter/@QueryParameter

From: Chris Carrier <ctcarrier_at_gmail.com>
Date: Mon, 22 Feb 2010 15:08:03 -0800

Those characters aren't valid URL characters so you need to HTTP
encode them like:

http://www.w3schools.com/TAGS/ref_urlencode.asp

Chris

On Mon, Feb 22, 2010 at 2:40 PM, Rameswara Sashi Kiran Challa
<schalla_at_umail.iu.edu> wrote:
>
> Hello All,
>
> I am new to JAX-RS and I am trying to use Jersey to build a simple RESTful
> Webservice.
>
> I have 2 questions. Please clarify these:
>
> I am trying to have my simple webservice like this URL
> http://localhost:8080/SampleJersey/rest/inchi/InChIName
>
> The InChIName is a string like this
> InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2- 5H,1H3,(H,11,12). How
> do I pass this as a @PathParam, I mean a normal String is working fine but
> here there are slashes,hyphens, and commas. How do I make it to ignore
> these. I tried putting it in quotes, but that didnt work. How should I do
> this?
>
>           I got this working using @Context UriInfo and
> getQueryparamaeters() method. But if I use that my URL should have a '?=' to
> take in the InChIname. I do not want to have "?=" in my URL structure.
>
>           Please correct me if I am thinking wrong.
>
>
> I need to pass that InChI to another webservice and that returns an XML as
> an output and I want to display that XML output as my Webservice's output.
> If I have @Produces("application/xml") will it work?
>
> This is my code:
>
> @Path("/inchi")
> public class InChIto3D {
>
>     @GET
>     @Path("{inchiname}")
>
>     @Produces("text/plain")
>     public String get3DCoordinates(@PathParam("inchiname")String inchiName)
> {
>
>         String ne="";
>         try{
>
>             URL eutilsurl = new URL(
>
> "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?"
>
>                       + "db=pccompound&term=%22"+inchiName+"%22[inchi]");
>
>             BufferedReader in = new BufferedReader(
>
>                                     new
> InputStreamReader(eutilsurl.openStream()));
>
>             String inputline;
>             while ((inputline=in.readLine())!=null)
>
>                 ne=ne+inputline;
>         }catch (MalformedURLException e1) {
>
>         }catch (IOException e2){
>
>         }
>         return ne;
>     }
>
> }
>
>
> Thanks in advance
>
> Sashikiran
>
> --
> Sashikiran Challa
> MS Cheminformatics,
> School of Informatics and Computing,
> Indiana University, Bloomington,IN
>
>