Relatórios PDF - jasper

Forum sobre a ferramenta Oracle JDeveloper, ADF, OAF, etc. (Não é destinado ao aprendeziado da Linguagem Java em geral)
Responder
rohling
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Qua, 26 Ago 2009 7:43 pm
Localização: PR

Sempre criei relatórios com eclipse, netbeans através do arquivo compilado do Ireport .jasper do Ireport. No jdeveloper que estou testando para migrar meus projetos encontrei poucos tutorial ou exemplos e o que tem bem antigo 2006 http://www.theregister.co.uk/2006/10/24 ... s_tutorial,
e quase todos compilando o arquivo .xml. Porém testei estas formas e sempre sem sucesso.Quando tendo executar

Selecionar tudo

JasperPrint print = JasperFillManager.fillReport(report, fillParams , conn);
o erro é:

Selecionar tudo

Root cause of ServletException.
javax.faces.el.EvaluationException: java.lang.ClassCircularityError: net/sf/jasperreports/engine/JRException
	at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
- Já inclui a bibliotecas no projeto estou usando jdevelop 11 com weblogic.

Alguém tem alguma ajuda, como vocês geram relatórios em pdf,excel,etc.. existe o Oracle BI Publisher porém comprado licença?

Atenciosamente.
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

tenta separar em 2 linhas

Selecionar tudo

static JasperPrint print = null;
print = JasperFillManager.fillReport(report, fillParams , conn); 
Carregamento

Quando a JVM executa a classe Teste ela percebe que essa classe ainda não foi carregada, isso quer dizer que a JVM ainda não tem uma representação binária dessa classe, sendo assim, a JVM usa a classe ClassLoader ou alguma de suas sub-classes para tentar encontrar a representação binária da classe Teste, em seguida a classe ClassLoader ou alguma de suas sub-classes tenta construir um objeto Class que representa a forma binária da classe Teste, isso é feito porque um objeto Class reflete ou representa uma classe ou interface, em outras palavras, esse objeto Class conterá informações sobre a nossa classe Teste. Essa representação binária nada mais é que um arquivo class, isso quer dizer que a classe ClassLoader ou alguma de suas sub-classes tenta encontra o arquivo.class(
Teste.class) da nossa classe.

Se um erro ocorrer durante esse processo de carregamento, então uma das seguintes exceções da classe LinkageError será lançada.

ClassCircularityError => Você está herdando de uma classe cuja a superclasse é ela mesma. A
Listagem 01 mostra um exemplo.

Listagem 01.

Selecionar tudo

package jvmExecution;
public class Teste extends Teste{
public static void main(String[] args) {
}
}
http://java.sun.com/j2se/1.4.2/docs/api ... Error.html
Lançado quando uma forma circular foi descoberta inicializando uma classe.

Quando chegar em casa se você quiser eu posto uma rotina para relatórios tanto em pdf como excel, a diferença e que nessa rotina que tenho em casa em chamo arquivos .rdf gerados no oracle report builder
rohling
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Qua, 26 Ago 2009 7:43 pm
Localização: PR

Ok Victor:

O problema era esse mesmo, agora sim já estou conseguindo gerar os relatórios através de .jasper. Realmente estou gostando muito do Jdeveloper, não deixa nada a desejar.

Obrigado,

Rohling
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Selecionar tudo

static JasperPrint print = null;
print = JasperFillManager.fillReport(report, fillParams , conn); 
você entendeu porque isso resolveu?

o método fillReport() retorna um objeto estático.

:lol:

qualquer coisa estamos ai

fica na paz
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes