The question I have is why this is flagged as "vfs" and isn't being asked on 
the httpclient mailing list?

Ralph

On Feb 7, 2011, at 8:12 AM, Ismael Marín Carrión wrote:

> Hi all,
> 
> I would like to recall my question. Briefly, httpclient is not able to
> connect to a HTTP server, which has opened a GASS session, using a URI
> such as: http://localhost:8180/opt/mytext.txt , where /opt/mytext.txt is
> on /. However, using a web server or tomcat servlet container,
> httpclient has not problems.
> 
> Tracking the code, in the generateRequestLine method of
> HttpMethodBase.java, it does not receives the correct path.
> 
> protected static String generateRequestLine(HttpConnection connection,
>        String name, String requestPath, String query, String version)
> 
> Thus, for the GASS session , requestPath shows:
> HEAD / HTTP/1.1 , instead of HEAD /opt/mytext.txt HTTP/1.1
> 
> But, using a URI of tomcat, such as http://localhost:8080/index.jsp , it
> shows:
> HEAD /index.jsp HTTP/1.1
> 
> I hope it clarifies the problem. Any comment or suggestion is welcome.
> Regards.
> 
> 
> On Thu, 2011-02-03 at 17:27 +0100, Ismael Marín Carrión wrote:
> 
>> Dear Martin, thanks for your response.
>> 
>> The GASS session does not uses the port 80 (and magno is a local
>> domain). It opens a HTTP session such as
>> 
>> $ globus-gass-server -i -p 8180
>> http://localhost:8180
>> 
>> 
>> and so, you can transfer files using the globus-url-copy (in a grid
>> environment) or simply, using wget to a URI such as
>> http://localhost:8180/out/test.txt, where /out/test.txt is on /, the
>> file is downloaded.
>> 
>> It seems rare since using a URI of a web server or tomcat servlet, this
>> application has not problems. So, I guess that httpclient is not ready
>> for this kind of HTTP services, no?
>> 
>> By other hand, the application previously set the HostConfiguration,
>> client.setHostConfiguration(config);. I am not the developer of this
>> code, and so I unknown some details.
>> 
>> Regards. 
>> 
>> On Thu, 2011-02-03 at 11:09 -0500, Martin Gainty wrote:
>>> ssh username@magno (or whatever the IP is assigned to magno in hosts file)
>>>> netstat -ab | grep 80
>>> 
>>> //if you do not have HTTPServer running on 80 you will get no results
>>> //if you do have HTTPServer running on Port 80 you should see output
>>> 
>>> //also if your HttpClient executeMethod is declared as 
>>> public int executeMethod(HostConfiguration hostconfig, final HttpMethod 
>>> method, final HttpState state)
>>> throws IOException, HttpException 
>>> 
>>> //you should call executeMethod with all of the params initialised e.g.
>>> try
>>> {
>>> int n=client.executeMethod(hostconfig,method,state)
>>> }
>>> catch(IOException ioe)
>>> {
>>> log.debug("Handle your IOException from client.executeMethod here");
>>> }
>>> catch(HttpException http_exception)
>>> {
>>> log.debug("Handle your HttpException from client.executeMethod here");
>>> }
>>> 
>>> Saludos Cordiales,
>>> Martin Gainty 
>>> ______________________________________________ 
>>> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>>> 
>>> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene 
>>> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte 
>>> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht 
>>> dient lediglich dem Austausch von Informationen und entfaltet keine 
>>> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von 
>>> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
>>> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
>>> destinataire prévu, nous te demandons avec bonté que pour satisfaire 
>>> informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie 
>>> de ceci est interdite. Ce message sert à l'information seulement et n'aura 
>>> pas n'importe quel effet légalement obligatoire. Étant donné que les email 
>>> peuvent facilement être sujets à la manipulation, nous ne pouvons accepter 
>>> aucune responsabilité pour le contenu fourni.
>>> 
>>> 
>>> 
>>> 
>>>> Date: Thu, 3 Feb 2011 16:20:33 +0100
>>>> From: [email protected]
>>>> Subject: Re: [vfs] - Problem with httpclient
>>>> To: [email protected]
>>>> 
>>>> I would like to emphasize that the URI is given by a insecure Globus
>>>> GASS session (the files are transfered using wget, so the session is
>>>> ok). This code does not fail with other kind of URIs.
>>>> 
>>>> Thus, are this kind of URIs valid for httpclient?
>>>> 
>>>> Regards.
>>>> 
>>>> On Wed, 2011-02-02 at 10:13 +0100, Ismael Marín Carrión wrote:
>>>>> Dear all,
>>>>> 
>>>>> I am working in the development of a driver for a Grid system. In our
>>>>> tests, we are using GridSAM, which use the httpclient and commons-vfs.
>>>>> 
>>>>> I am writing you to get some advise of how solving the next problem.
>>>>> 
>>>>> GridSAM invokes httpclient classes from the HttpClientFactory class
>>>>> (org.apache.commons.vfs.provider.http), in the method
>>>>> createConnection().
>>>>> 
>>>>> public static HttpClient createConnection(HttpFileSystemConfigBuilder
>>>>> builder, String scheme,
>>>>>                                              String hostname, int port,
>>>>> String username,
>>>>>                                              String password,
>>>>> FileSystemOptions fileSystemOptions)
>>>>>            throws FileSystemException
>>>>>    {
>>>>>             ....
>>>>>            client.executeMethod(new HeadMethod());
>>>>>            ....
>>>>>     }
>>>>> 
>>>>> I am not using any authentication mechanism, and so username and passwd
>>>>> are null, but hostname, port and scheme has the proper values.
>>>>> 
>>>>> Thus, in executeMethod() method of the HttpClient class:
>>>>> 
>>>>> public int executeMethod(HostConfiguration hostconfig,
>>>>>        final HttpMethod method, final HttpState state)
>>>>>        throws IOException, HttpException  {
>>>>>        ....
>>>>>         HostConfiguration defaulthostconfig = getHostConfiguration();
>>>>>        if (hostconfig == null) {
>>>>>            hostconfig = defaulthostconfig;
>>>>>        }
>>>>>        URI uri = method.getURI();
>>>>>       ....
>>>>> }
>>>>> 
>>>>> I received a null value for uri, while the hostconfig object has values
>>>>> for host attribute, but not for localAddress attribute or any other.
>>>>> Later it causes a NoHttpResponseException. 
>>>>> 
>>>>> The complete stack is:
>>>>> 
>>>>> 2011-02-01 17:11:49,050 ERROR [TransferAgentFactory] source URI is not
>>>>> resolvable
>>>>> org.apache.commons.vfs.FileSystemException: Could not connect to HTTP
>>>>> server on "magno".
>>>>> at
>>>>> org.apache.commons.vfs.provider.http.HttpClientFactory.createConnection(HttpClientFactory.java:186)
>>>>> at
>>>>> org.apache.commons.vfs.provider.http.HttpClientFactory.createConnection(HttpClientFactory.java:53)
>>>>> at
>>>>> org.apache.commons.vfs.provider.http.HttpFileProvider.doCreateFileSystem(HttpFileProvider.java:97)
>>>>> at
>>>>> org.apache.commons.vfs.provider.AbstractOriginatingFileProvider.getFileSystem(AbstractOriginatingFileProvider.java:103)
>>>>> at
>>>>> org.apache.commons.vfs.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:82)
>>>>> at
>>>>> org.apache.commons.vfs.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:66)
>>>>> at
>>>>> org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:706)
>>>>> at
>>>>> org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:623)
>>>>> at
>>>>> org.icenigrid.gridsam.core.plugin.transfer.protocol.AbstractTransferAgent.getFileObject(AbstractTransferAgent.java:239)
>>>>> at
>>>>> org.icenigrid.gridsam.core.plugin.transfer.protocol.TransferAgentFactory.resolveSourceFile(TransferAgentFactory.java:168)
>>>>> at
>>>>> org.icenigrid.gridsam.core.plugin.transfer.protocol.TransferAgentFactory.<init>(TransferAgentFactory.java:120)
>>>>> at
>>>>> org.icenigrid.gridsam.core.plugin.transfer.provider.AFTFileTransferJob.execute(AFTFileTransferJob.java:131)
>>>>> at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
>>>>> at org.quartz.simpl.SimpleThreadPool
>>>>> $WorkerThread.run(SimpleThreadPool.java:525)
>>>>> Caused by: org.apache.commons.httpclient.NoHttpResponseException: The
>>>>> server magno failed to respond
>>>>> at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(Unknown
>>>>> Source)
>>>>> at org.apache.commons.httpclient.HttpMethodBase.readResponse(Unknown
>>>>> Source)
>>>>> at org.apache.commons.httpclient.HttpMethodBase.execute(Unknown Source)
>>>>> at
>>>>> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Unknown 
>>>>> Source)
>>>>> at
>>>>> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(Unknown
>>>>> Source)
>>>>> at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown
>>>>> Source)
>>>>> at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown
>>>>> Source)
>>>>> at
>>>>> org.apache.commons.vfs.provider.http.HttpClientFactory.createConnection(HttpClientFactory.java:182)
>>>>> ... 13 more
>>>>> 
>>>>> Maybe, the line numbers are not exactly correct since I have been some
>>>>> minor changes. The version of httpclient is 3.0.1 and vfs is 2.1.
>>>>> 
>>>>> I am very pleased of any help or advise. Best regards.
>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>> 
>>>                                       
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to