Hi there,

I'm using restlet 1.1.3.

I created a simple restlet with get and put. then I use client try to test it.
I have a local machine using tomcat and it works fine. But when I move to QA
server which use weblogic 10, even for the  same command, only GET works, PUT
somehow  complains:
Apr 3, 2009 3:05:41 PM org.apache.commons.httpclient.HttpMethodDirector
isAuthenticationNeeded
INFO: Authentication requested but doAuthentication is disabled
PUT output: Unauthorized (401) - Unauthorized

It looks like the apache httpclient is asking something. Has anyone had this
problem? 



the whole output after running the client is as following:

Apr 3, 2009 3:05:41 PM org.aip.pubtech.testRestlet.client.RLclient PUTtpForm
INFO: ===================PUTtpForm============================
Apr 3, 2009 3:05:41 PM com.noelios.restlet.ext.httpclient.HttpClientHelper
start
INFO: Starting the HTTP client
Apr 3, 2009 3:05:41 PM org.apache.commons.httpclient.HttpMethodDirector
isAuthenticationNeeded
INFO: Authentication requested but doAuthentication is disabled
PUT output: Unauthorized (401) - Unauthorized
Apr 3, 2009 3:05:42 PM org.aip.pubtech.testRestlet.client.RLclient get
INFO: ====================
Apr 3, 2009 3:05:42 PM org.aip.pubtech.testRestlet.client.RLclient get
INFO: response for the uri : http://test.int.aip.org/testRestlet/articles/1111

Apr 3, 2009 3:05:42 PM org.aip.pubtech.testRestlet.client.RLclient get
INFO: request success
Apr 3, 2009 3:05:42 PM org.aip.pubtech.testRestlet.client.RLclient get
INFO: entity available
now in represent, this is get

—------ the following is my class for resource —----
package org.aip.pubtech.testRestlet.aps;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.restlet.Context;
import org.restlet.data.Form;
import org.restlet.data.MediaType;
import org.restlet.data.Request;
import org.restlet.data.Response;
import org.restlet.data.Status;
import org.restlet.resource.DomRepresentation;
import org.restlet.resource.Representation;
import org.restlet.resource.Resource;
import org.restlet.resource.ResourceException;
//import org.restlet.resource.ResourceException;
import org.restlet.resource.StringRepresentation;
import org.restlet.resource.Variant;

public class RLResource extends Resource{
    protected static Logger log = Logger.getLogger(getName());
    public RLResource(Context context, Request request, Response response)
    {
        super(context, request, response);
        this.articleExists = false;

        this.aipkey = (String)
this.getRequest().getAttributes().get("aipkey");
        if(this.aipkey != null && this.aipkey.trim().length()>0)
        {
                        this.articleExists = true;
                        this.getVariants().add(new
Variant(MediaType.TEXT_PLAIN));
                        this.setModifiable(true);
        }else{
                // this resource is not available
                this.setAvailable(false);
        }

    }

/**
 * this is GET, return the string to client
 */

    @Override
    public Representation represent(Variant variant) throws ResourceException
    {
        if(MediaType.TEXT_PLAIN.equals(variant.getMediaType()))
        {
        //   try{
                 StringRepresentation sr = new
StringRepresentation("test",MediaType.TEXT_PLAIN);
                 sr.setText("now in represent, this is get");
                 return sr;
        //   }catch(IOException e) {
        //         e.printStackTrace();
        //   }
        }

        return null;
    }


    @Override
    public void storeRepresentation(Representation entity) throws
ResourceException
    {
        if(this.aipkey ==null || this.aipkey.trim().length()==0)
        {
               
this.getResponse().setStatus(Status.CLIENT_ERROR_UNAUTHORIZED);
                return;
        }

        if( !this.articleExists)
        {
               
this.getResponse().setStatus(Status.CLIENT_ERROR_UNAUTHORIZED);
                return;
        }

                this.getResponse().setStatus(Status.SUCCESS_OK);
        }catch(Exception e)
        {
                log.warning("record data exception");
               
this.getResponse().setStatus(Status.SERVER_ERROR_SERVICE_UNAVAILABLE);
        }
    }

—---------- the following is client code —---

package org.aip.pubtech.testRestlet.client;

import java.io.IOException;
import org.restlet.Client;
import org.restlet.data.Form;
import org.restlet.data.MediaType;
import org.restlet.data.Method;
import org.restlet.data.Protocol;
import org.restlet.data.Reference;
import org.restlet.data.Request;
import org.restlet.data.Response;
import org.restlet.resource.Representation;
import org.restlet.resource.StringRepresentation;

import java.util.logging.Level;
import java.util.logging.Logger;

public class RLclient {
    protected static Logger log =
Logger.getLogger(org.aip.pubtech.testRestlet.client.RLclient.class.getName());

        public static void main(String[] args) throws IOException
        {

               Client client1 = new Client(Protocol.HTTP);
                Reference itemURI1 =null;

                 itemURI1 = new
Reference("http://test.int.aip.org/testRestlet/articles/1111";);

                PUTtpForm(client1, itemURI1);
                get(client1, itemURI1);
       }

    public static void PUTtpForm(Client client, Reference RLUri)
    {
        if(log.isLoggable(Level.WARNING))
        {
               
log.log(Level.INFO,"===================PUTtpForm============================");
        }

        Form form = new Form();
        form.add("name", "test");

        Representation rep = form.getWebRepresentation();

        Response response = client.put(RLUri, rep);

        System.out.println("PUT output: " + response.getStatus());

    }
}





Thanks, helen

Reply via email to