PDA

Visualizza la versione completa : [JAVA] JasperReports: chiude applicazione


global_napoli
20-10-2005, 10:43
Ciao a tutti,ho creato dei report con jasperreport.
Però quando chiudo la finestra di JASPERREPORT VIEWER
MI VIENE CHIUSA ANCHE L'APPLICAZIONE CORRENTE.
Secondo voi da cosa dipende?
Uso JB 2005

Grazie e ciaooo :D

eumene
20-10-2005, 14:48
Ciao, global_napoli

Strano, a me non capita.

Posso chiederti che versione di JasperReport usi? Ovviamente il viewer si apre come nuovo Frame, giusto?

global_napoli
21-10-2005, 09:36
Ciao eumene ,ho risolto il problema:però me ne è sorto un'altro.

Quando lancio da JBuilder 2005 la mia web application e provo ad aprire il report con JasperViewer.viewReport...tutto ok.

Però se provo però a lanciare viewReport quando la cartella della web application si trova in webapps di apache non mi fa vedere l'anteprima di stampa.Secondo te da cosa potrebbe dipendere?

Io Credo dal percorso in cui si trova il template xml,però non sono riuscito a passargli il giusto path.

Questo è il percorso che utilizzo per chiamare il template xml:

JasperDesign jasperDesign = JRXmlLoader.load("D:\\Backup_applicazioni\\Progetti_JSP\\GlobalWebAp plication_Gianluca\\GlobalWebModule\\Reports\\Repo rtSocieta.xml");

Come potrei fare secondo te?

Grazie e ciaooooo :D

eumene
21-10-2005, 10:04
Ciao,

allora, io utilizzo questo standard.

Tutti i template (.jrxml estensione standard) li metto in una cartella modelli, nella root del sito.

In questo modo posso sempre accedere a quella cartella dalla web application, evitando di generare problemi di permessi (che potrebbe essere l'errore che da a te)

Inoltre il comendo



httpServletRequest.getSession().getServletContext( ).getRealPath("/modelli/")


dovrebbe poter ritornare il path fisico della cartella <root_sito>/modelli su qualsiasi host, il che ti assicura la portabilità tra vari hosting, senza essere costretto a modificare le classi.

Potresti, allo stesso modo, utilizzare un file di configurazione, un properties per intenderci, da poter leggere con un java.util.ResourceBundle.

global_napoli
21-10-2005, 12:24
Non riesco a trovare le librerie da importare nella mia classe per poter usare :

httpServletRequest.getSession().getServletContext( ).getRealPath("/modelli/")

Non mi sapresti indicare cosa devo importare?

Grazie e ciaoo :D

eumene
21-10-2005, 13:29
La classe da utilizzare è proprio HttpServletRequest, ovvero la request del sito.

Puoi utilizzare anche direttamente la session in questo modo



session.getServletContext().getRealPath("/modelli/")


essendo session == httpServletRequest.getSession()

Ciao

global_napoli
24-10-2005, 09:46
Ciao ho usato session per ottenere il percorso del file xml nella cartella della web application,ma quando richiedo l'anteprima di stampa non succede niente,mentre la stessa operazione va bene se la eseguo da JBuilder.

Forse bisogna inserire qualcos'altro?

Ciaoo

eumene
24-10-2005, 12:01
Hai controllato gli errori del Tomcat?

Una volta mi capitava la stessa cosa e i log segnalavano errori tipo Runtime... Win32 not found... o cose del genere.

E' causato dall'assenza della libreria standard jdk tools.jar

Contiene gli strumenti minimi per permettere al JasperReport di compilare i .java in .jasper

Potrebbe essere questo.

global_napoli
24-10-2005, 17:35
Intendi dire che devo inserire il riferimento a tools.jar nel classpath delle variabili d'ambiente?

Graie e ciaoooo :D

eumene
24-10-2005, 17:43
Esatto.

Assicurati che tools.jar sia tra le librerie del classpath.

Ciao

Loading