Como posso usar da Sun JAI-ImageIO com um plugin do Eclipse BIRT?
-
22-07-2019 - |
Pergunta
Eu estou tentando escrever uma extensão (plug-in) para relatórios Eclipse BIRT. Trata-se de extrair imagens de um arquivo de acordo com as entradas do banco de dados e exibi-los.
Eu estou usando da Sun JAI-ImageIO aos dados arquivo de acesso TIFF e converter para PNG para ser exibido no relatório. Meus cumpre código, mas lança uma exceção NoClassDefFound tempo de execução:
SEVERE: Error happened while running the report.
java.lang.NoClassDefFoundError: javax/media/jai/PlanarImage
at org.eclipse.birt.sample.reportitem.rotatedlabel.util.GraphicsUtil.createDocImage
(GraphicsUtil.java:66)
at org.eclipse.birt.sample.reportitem.rotatedlabel.RotatedLabelPresentationImpl.onRowSets
(RotatedLabelPresentationImpl.java:136)
at org.eclipse.birt.report.engine.extension.ReportItemPresentationBase.onRowSets
(ReportItemPresentationBase.java:218)
at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.
processExtendedContent(LocalizedContentVisitor.java:966)
...
Eu estou usando o método PlanarImage.getAsBufferedImage (), por isso deve converter para um objeto de imagem mais padrão. Eu coloquei os arquivos jar JAI na minha JRE e testado o mesmo fora código básico do Eclipse plug-in ambiente - que funciona bem. Parece ser um problema CLASSPATH, mas eu tenho verificado que todos os JREs no meu sistema contém o jar necessário e arquivos DLL nos lugares apropriados.
Para um novo driver JDBC, você deve colocar o jar (s) em um sub-diretório especial de plugins -? Há um lugar especial para colocar outros frascos de terceiros de modo BIRT pode usá-los
Solução
Este foi resolvido em extensão Eclipse para o tipo TIFF abertura 4 imagens . Basicamente, você só precisa fazer um subdiretório e colocar todos os JARs e DLLs nele, adicione os frascos para o seu classpath e adicionar as DLLs para as "dependências de plug-in" em "bibliotecas nativas necessárias".