Newsgroup: it.comp.java
Titolo: servlet java ---> cocoon

                    Salve,
tempo fa ho scritto una servlet in java (per jboss)...ora devo usare questa
servlet con cocoon in modo da poter visualizzare, tramite un file xsl credo,
o un apagina html o wml....
qualcuno sà dirmi come posso fare?
grazie
PS: con cocoon sono alle prime armi
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 PS: con cocoon sono alle prime armi
In che senso devi usare la servlet con Cocoon?
Forse intendi che la servlet fa una richiesta alla servlet Cocoon, e
visualizza il risultato dell'ultima?
Allora credo devi farti una web app per la tua servlet, settare a true il
flag crossContext (mi pare si chiami così), per far si che si possa
comunicare con altre applicazioni web (l'altra sarebbe quella di cocoon), e
da cocoon in avanti guardati la documentazione (dovrai modifcare un pò
sitemap.xmap, e scrivere qualche foglio di stile).

Quarda...non č che ho capito molto di quello che hai scritto... sono tre
giorni che cerco di capire come funziona cocoon...
Le cose stanno cosě.... ho scritto una servlet in java per jboss la quale,
oltre a fare una form e quindi una post, fa anche dei controlli...
adesso dovrei utilizzare cocoon per fare in modo che la pagina generata
dalla servlet non sia solo in formato html, ma anche in wml...
da quello che ho capito di cocoon dovrei genare un file xml dinamico e poi
farlo interpretare da due file xsl, uno per generare una pagina html e uno
per wml...
Tanto per incominciare, per ora ho messo da parte jboss, ho scritto questa
stupida servlet:
public class HelloXML extends HttpServlet {
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
 
        PrintWriter out = response.getWriter();
        out.println("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
        out.println("<page>");
        out.println("<title>This is the pageOne.xml example</title>");
        out.println("<s1 title=\"Section one\">");
        out.println("<p>This is the text of section one</p>");
        out.println("</s1>");
        out.println("</page>");
 
		out.flush();
		out.close();
    }
}
 ho scritto questo sitemap:
<?xml version="1.0" encoding="iso-8859-1"?>
<map:sitemap xmlns:map="
http://apache.org/cocoon/sitemap/1.0
">
    <map:pipelines>
        <map:pipeline>
         <map:match pattern="HelloWorld">
           <map:generate src="
http://localhost:8888/cocoon/internal/Hello
" />
	 <map:transform src="doc2html.xsl" />
	   <map:serialize type="html"/>
   </map:match>
        </map:pipeline>
    </map:pipelines>
</map:sitemap>
ho messo il HelloXML.class nella cartella
"C:\cocoon-2.1.5\build\webapp\WEB-INF\classes"
ed ho aggiunto al file web.xml in "C:\cocoon-2.1.5\build\webapp\WEB-INF" :
<servlet>
    <servlet-name>Hello</servlet-name>
       <servlet-class>HelloXML</servlet-class>
       </servlet>
 
  <servlet-mapping>
     <servlet-name>Hello</servlet-name>
     <url-pattern>/internal/Hello</url-pattern>
    </servlet-mapping>
ma quando quando vado a 
http://localhost:8888/cocoon/HelloWorld
 mi ritorna
Failed to execute pipeline.: java.io.IOException
perchč?
ciao, grazie.
doc2html:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="
http://www.w3.org/1999/XSL/Transform
"
version="1.0">
<!-- generate HTML skeleton on root element -->
<xsl:template match="/">
  <html>
    <head>
      <title><xsl:apply-templates select="page/title"/></title>
    </head>
    <body>
	    <xsl:apply-templates/>
    </body>
  </html>
</xsl:template>
<!-- story is used later by the Meerkat example -->
<xsl:template match="p|story">
    <p><xsl:apply-templates/></p>
</xsl:template>
<!-- convert sections to HTML headings -->
<xsl:template match="s1">
    <h1><xsl:apply-templates select="@title"/></h1>
    <xsl:apply-templates/>
</xsl:template>
<!-- converte immagini -->
<xsl:variable name="image-dir">/images</xsl:variable>
<xsl:template match="andrea">
<img src="{href}" />
</xsl:template>
</xsl:stylesheet>


Ti prego, dammi un cenno!!! ç(- -)!


 Inviato via 
http://arianna.libero.it/usenet/
Non mi ricordo tutti i dettagli di cocoon, quindi nn posso esserti molto
d'aiuto.
Io cmq proverei prima di tutto a mettree un file xml statico come quello che
hai prodotto con la servlet, e modifica il tag generator in sitemap.xml,
vedi se ti da ancora errore.
tanto per capire se è colpa della comunucazione con la servlet o se l'errore
è altrove.


 
In realtà ho fatto il contrario, quello che ho messo nella servlet si
trovava in un xml statico e funzionava... quindi il problema dovrebbe essere
nella servlet...siamo sicuri che si può scrivere PrintWriter out =
response.getWriter();
cioè la servlet scritta in java "puro" va bene per cocoon?
sai indirizzarmi per risolvere questo ed eventuali altri problemi? (no
apache.. no newsletter di apache)
grazie, ciao


 cioè la servlet scritta in java "puro" va bene per cocoon?
Prova con
response.setContentType("text/xml");
....
PrintWriter out = response.getWriter();
...


Purtroppo non ha funzionato... l'errore è sempre java.io.IOException
grazie lo stesso..


 ha scritto nel messaggio
news:cd11o2$sto$1...@lacerta.tiscalinet.it...

Fai in modo che la servlet mandi al browser il codice xml prodotto. E poi
prova a visualizzare il codice html prodotto, e a quel punto controlla che
sia xml corretto.
Infatti non mi ricordo che il tag xml iniziale va messo o no, ma magari ci
son anche altre cose.


Probabilmente è qualcosaltro...perchè nel file web.xml in webapp/WEB-INF
ieri ho aggiunto (in base a ciò che c'è scritto sul sito di apache):
<servlet>
    <servlet-name>Hello</servlet-name>
    <!-- the name we will use to refer to the servlet -->
    <servlet-class>HelloXML</servlet-class>
    <!-- the actual name of the Servlet class -->
   </servlet>
 
  <servlet-mapping>
     <servlet-name>Hello</servlet-name>
     <url-pattern>/internal/Hello</url-pattern>
 <!-- the URL path to the XML servlet -->
   </servlet-mapping>
stamattina facendo ripartire cocoon mi ha generato errore proprio in
/webapp/WEB-INF/web.xml ... allora ho cancellato quello che avevo aggiunto e
ho fatto ripartire cocoon... ed è partito bene... dopo di che senza
aggiungere nuovamente il codice scritto sopra in web.xml ho richiamato la
servlet dal browser ed ho ottenuto lo stesso errore...
a questo punto sospetto che cocoon non ricosce il codice java perchè non sà
che si tratta di una servlet.... ma allora il codice scritto sopra dove và
messo.... il fatto che andasse aggiunto in web.xml (file già esistente) l'ho
letto sul sito di apache-cocoon
ciao, garzie



Ho risolto quello sopra... il problema era che non mettevo al posto giusto
il codice in web.xml... però l'errore che mi ritorna è sempre lo stesso...
java.io.IOException..


OK.. ho risolto.. il problema era negli indirizzi!!!!!
