Графика в java

Вопрос можно ли через сервлет передать построенный по заданными параметрами график, диаграмму?

Если да, прошу подскажите как или где прочитать про это?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Большое спасибо.

Всеч блага мира вам!!!

CLASSPATH такой

Какой еще CLASSPATH? Куда вы его прописываете?

В библиотеки должны быть в war-файле в /WEB-INF/lib.

CLASSPATH такой

C: \forJava\sqljdbc_2.0\enu\sqljdbc4.jar;
C: \Tomcat\lib;
C: \forJava\jfreechart-1.0.13\lib\jcommon-1.0.16.jar;
C: \forJava\jfreechart-1.0.13\lib\jfreechart-1.0.13.jar;

C: \forJava\jfreechart-1.0.13\lib\

jfreechart-1.0.13 скачал с jfree.org. В lib есть еще библеотеки, но разве они нужны. Пробовал все по штучно подключить результат не меняется. Что еще может быть?

Библиотека (jar) в каталоге lib есть?

Столкнулся с проблемой. Взял простой сервлет с выводом круговой диаграммы. Код таков:

import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.Color;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class diagram extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doTestPieChart(request,response);

}

protected void doTestPieChart(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
OutputStream out = response.getOutputStream();

try
{
DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("Graphic Novels", 192);
dataset.setValue("History", 125);
dataset.setValue("Military Fiction", 236);
dataset.setValue("Mystery", 547);
dataset.setValue("Performing Arts", 210);
dataset.setValue("Science, Non-Fiction", 70);
dataset.setValue("Science Fiction", 989);

JFreeChart chart = ChartFactory.createPieChart(
"Books by Type", // Title
dataset, // Data
true, // Yes, display the legend
false, // No, don't display tooltips
false // No, no URLs
);
chart.setBackgroundPaint(Color.white);

response.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, chart, 400, 300);
}
catch (Exception e)
{
System.out.println(e.toString());
}
finally
{
out.close();
}

} // End Method

}

В web.xml его прописал. компиляция проходит успешно. при загрузки странички в браузере выпадает такое

HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class diagram
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java: 102)
org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 298)
org.apache.coyote.http11.Http11Processor.process (Http11Processor.java: 852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process (Http11Protocol.java: 588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run (JIoEndpoint.java: 489)
java.lang.Thread.run (Thread.java: 619)
root cause
java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset
java.lang.Class.getDeclaredConstructors0 (Native Method)
java.lang.Class.privateGetDeclaredConstructors (Class.java: 2389)
java.lang.Class.getConstructor0 (Class.java: 2699)
java.lang.Class.newInstance0 (Class.java: 326)
java.lang.Class.newInstance (Class.java: 308)
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java: 102)
org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 298)
org.apache.coyote.http11.Http11Processor.process (Http11Processor.java: 852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process (Http11Protocol.java: 588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run (JIoEndpoint.java: 489)
java.lang.Thread.run (Thread.java: 619)
root cause
java.lang.ClassNotFoundException: org.jfree.data.general.PieDataset
org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java: 1484)
org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java: 1329)
java.lang.ClassLoader.loadClassInternal (ClassLoader.java: 316)
java.lang.Class.getDeclaredConstructors0 (Native Method)
java.lang.Class.privateGetDeclaredConstructors (Class.java: 2389)
java.lang.Class.getConstructor0 (Class.java: 2699)
java.lang.Class.newInstance0 (Class.java: 326)
java.lang.Class.newInstance (Class.java: 308)
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java: 102)
org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 298)
org.apache.coyote.http11.Http11Processor.process (Http11Processor.java: 852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process (Http11Protocol.java: 588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run (JIoEndpoint.java: 489)
java.lang.Thread.run (Thread.java: 619)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.24 logs.

Apache Tomcat/6.0.24

.

Помогите разобраться в чем ошибка?

Да вот первая ссылка из гугла — http://www.exampledepot.com/egs/javax.servlet/GetImage.html. Только вместо статической картинки генерируешь график с JFreeChart.

silverwolf

Я новичок в программрование на java. покажи мне пожалуйста пример кода как все это реализовать?

JFreeChart — рисуем картинку,

возвращаем ее в OutputStream response’а, предварительно установив MIME-тип на картинку, например для jpeg — «image/jpeg»

Готовь тушенку, студентота.

Или так. в бпзе данных есть значения. в методе doGet я жму на кнопку, а в методе doPost я беру эти значения и спомощью специальной компоненты рисую диаграмму. Что вывожу в браузер. возможно ли это реализовать через сервлеты?

Підписатись на коментарі