Reinstalado Jetty y todo funcionando perfectamente, no ha hecho falta reinstalar Perl. Ahora Jetty si sirve los CGI con el navegador.
Revisado de nuevo todo lo descrito, configurado de nuevo Jetty con las mismas funcionalidades que las apuntadas. No veo ningún cambio que pueda anunciar.
Hecha un vistazo a mi CGI mínimo para que lo pruebes. El módulo CGI::Carp sacará los posibles errores a la pantalla del navegador.
Cuando leí el mensaje ya había reinstalado Jetty. Probado ahora con resultado correcto:
Using html4strict Syntax Highlighting
CGI MINIMO
Si ves este texto es que SÍ está funcionando bien.
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
La duda quedará en el recuerdo. Sin embargo, mirando el aspecto positivo es que seguiré con mi propósito de intentar conectar mediante Perl, un servicio web y una base de datos nativa XML embebida en Jetty.
Instalada y levantada la base de datos embebida, instalado el conector para el servicio decido realizar la conexión del modo siguiente:
Using perl Syntax Highlighting
#!/usr/bin/perl
use RPC::XML;
use RPC::XML::Client;
$URL = "http://guest:guest\@localhost:8080/exist/xmlrpc";
print "connectando con la $URL de la base de datos...\n";
$client = new RPC::XML::Client $URL;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Para comprobar que la conexión se ha realizado con éxito me decido ha realizar una consulta sobre un documento ejemplo que existe en la raíz de la base de datos. El documento se llama examples.xml y tiene esta estructura:
Using xml Syntax Highlighting
<example-queries>
<query>
<description>Simple fulltext query on Shakespeare plays</description>
<code>for $speech in //SPEECH[LINE &= 'love'] return $speech</code>
</query>
<query>
<description>Fulltext query using near</description>
<code>for $speech in //SPEECH[SPEAKER &= 'witch' and near(., 'fenny snake')] return $speech</code>
</query>
...
</example-queries>
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Decido extraer el valor de cada una de las descripciones
Using xml Syntax Highlighting
<description> valoresAExtraer
</description>Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Preparando la consulta en el cgi con
xpath y
xquery
Using perl Syntax Highlighting
$consulta = <<END;
for \$b in document('/examples.xml')//example-queries/query
let \$c := \$b
return
\$c/description
END
# Opciones de salida
$opciones = RPC
::XML::struct->new(
'indent' => 'yes',
'encoding' => 'UTF-8',
'highlight-matches' => 'none');
$solicitud = RPC
::XML::request->new("query", $consulta, 20
, 1
, $opciones);
$respuesta = $cliente->send_request($solicitud);
if($respuesta->is_fault) {
die "Ha ocurrido un Error: " . $respuesta->string . "\n";
}
print $respuesta->value;Coloreado en 0.010 segundos, usando
GeSHi 1.0.8.4
Hasta ahí por ahora, me imagino que siendo Perl cada uno lo hará a su estilo. Si me mostráis otras maneras estaría encantado de aprender.
Lo siguiente que probaré será realizar una consulta más compleja y estudiar su
parseo, para finalmente intentar aplicarle Ajax a unas listas
select, que, por cierto, ya he ojeado un ejemplo de explorer sobre el tema:
Perl, simplemente fantástico ¡Con tanta información no te aburres!