powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при выполнении JSP страниц в CeWolf
9 сообщений из 9, страница 1 из 1
Ошибка при выполнении JSP страниц в CeWolf
    #33259296
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть класс :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
 package  examples;

 import  java.util.*;
 import  java.io.Serializable;
 import  org.jfree.data.general.DefaultPieDataset;
 import  de.laures.cewolf.DatasetProducer;

 public   class  EmployeesByDept  implements  DatasetProducer, Serializable  {
    /**
     * Produces a Dataset that provides data for a graphic chart.
     *
     * @param  params  Description of the Parameter
     * @return         Description of the Return Value
     */
     public  Object produceDataset(Map params) {
        DefaultPieDataset ds =  null ;

        //Typically, you'd obtain data from a datasource such as a database.
        //Sample query you might use: SELECT COUNT(emp_id), dept.name FROM emp, dept WHERE emp.dept_id = dept.dept_id
        //Another option is to pass in a Java Collection using the 'param's Map.
        ds =  new  DefaultPieDataset();
        ds.setValue("Systems", 4 );
        ds.setValue("Accounting", 2 );
        ds.setValue("Human Resources", 2 );

         return  ds;
    }

    /**
     *  Gets the producerId attribute of the SeriesData object
     *
     * @return    The producerId value
     */
     public  String getProducerId() {
         return  "PieDataProducer";
    }

    /**
     *  Checks whether curent chart image has expired.
     *
     * @param  params  Description of the Parameter
     * @param  since   Description of the Parameter
     * @return         Description of the Return Value
     */
     public   boolean  hasExpired(Map params, java.util.Date since) {
         return  false;
    }
}

Есть JSP страничка

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<%@page contentType="text/html"%>
<%@taglib uri='/WEB-INF/cewolf.tld' prefix='cewolf' %>

<jsp:useBean id="pieChartView"  class ="examples.EmployeesByDept"/>

<HTML>
<BODY>
  <!--Example  1  : Simple 3D bar chart showing employees  by department-->
  <cewolf:chart id="pieChart"
                type="pie3d"
                title="# By Department"
                showlegend="true">

    <cewolf:data>
      <cewolf:producer id="pieChartView" />
    </cewolf:data>

    <cewolf:colorpaint color="#FFFFFF"/>

  </cewolf:chart>

  <cewolf:img chartid="pieChart"
              renderer="cewolf"
              border="0"
              width="285"
              height="250"/>
</BODY>
</HTML>

но когда она выполняеться то в области где должна быть картинка
я вижу следующую ощибку :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
 2005 - 09 - 08   14 : 54 : 20  CewolfServlet: Can't create output stream!
de.laures.cewolf.ChartRenderingException: Can't create output stream!
	at de.laures.cewolf.util.Renderer.renderChart(Renderer.java: 118 )
	at de.laures.cewolf.util.Renderer.render(Renderer.java: 88 )
	at de.laures.cewolf.taglib.ChartImageDefinition.ensureRendered(ChartImageDefinition.java: 137 )
	at de.laures.cewolf.taglib.ChartImageDefinition.getSize(ChartImageDefinition.java: 146 )
	at de.laures.cewolf.CewolfRenderer.doGet(CewolfRenderer.java: 144 )
	at javax.servlet.http.HttpServlet.service(HttpServlet.java: 740 )
	at javax.servlet.http.HttpServlet.service(HttpServlet.java: 853 )
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 247 )
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 193 )
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 243 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 566 )
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: 472 )
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java: 943 )
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 190 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 566 )
	at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java: 246 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 564 )
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: 472 )
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java: 943 )
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java: 2343 )
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 180 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 566 )
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java: 170 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 564 )
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 170 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 564 )
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: 468 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 564 )
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: 472 )
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java: 943 )
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 174 )
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java: 566 )
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: 472 )
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java: 943 )
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: 1012 )
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java: 1107 )
	at java.lang.Thread.run(Thread.java: 534 )

Тажа ошибка и выдаеться при выполнении и их примеров
в cewolf.war

С этой ошибки я так понял, что я не указал куда будет генериться картинка
Но я не нашел как это можна указать и какого формата она будет.

Ребята подскажите, где я ошибся ил может кто знает
где задать путь куда будет генериться картинка.

С нетерпением жду на любые коментарии
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33260888
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxq wrote:

> Ребята подскажите, где я ошибся ил может кто знает где задать путь куда будет генериться картинка.

ИМХО сама картинка сохраняется в сессии и выводится сервлетом Cewolf'a. Кстати, ты в web.xml все прописал? Твой пример у
меня нормально отработал.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33260893
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку: какая ОС?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33261254
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Денис что посмотрел !!!
У меня он тоже заработал
когда я поменял Tomcat 4.0.3 на Tomcat 5.0.28
А ты случайно не знаеш как можна в CeWolf
для обекта pie3d задать :
1) цвета которые я захочу
2) чтоб первый сектор начинался не с нулевого угла а допустим с 30
3) как можна минять глубину pie3d
4) как убрать подсказки типа "Systems=4"(легенду я убрал легко)
Может у тебя есть какойто пример ???

А то в KavaChart там все легко но он не лецензионный и его нельзя
использовать в проэкте, а CeWolf можна.

Зарание благодарен.
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33261265
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В догонку ОС 2000
И еще, а можна как то сохранять сгенерированую картинку ???
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33261926
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxq
для обекта pie3d задать :
1) цвета которые я захочу
В примере с Cewolf есть файл cewolfset_inc.jsp, там, в частности, есть такое:
Код: plaintext
\n<cewolf:chart ...>\n...\n    <cewolf:chartpostprocessor id="dataColor">\n        <cewolf:param name="0" value=\'<%= "#FFFFAA" %>\'/>\n        <cewolf:param name="1" value=\'<%= "#AAFFAA" %>\'/>\n        <cewolf:param name="2" value=\'<%= "#FFAAFF" %>\'/>\n        <cewolf:param name="3" value=\'<%= "#FFAAAA" %>\'/>\n    </cewolf:chartpostprocessor>\n</cewolf:chart>\n
Попробуй, может получится. Только не знаю, можно ли это задавать в классах, наверное можно.
maxq
2) чтоб первый сектор начинался не с нулевого угла а допустим с 30
3) как можна минять глубину pie3d

Вот это не делал, но в принципе Cewolf основан на JFreeChart, поэтому ответы на вопросы по нему можно искать на форумах, посвященных последнему, к примеру: http://www.jfree.org/phpBB2/viewforum.php?f=3
maxq
4) как убрать подсказки типа "Systems=4"(легенду я убрал легко)

/topic/193841
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33264022
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Денис за ссылки.
Я их просмотрел и попробывал настроить цвета, ну что не получилось,
да и угол и глубину в тегах настроить не льзя(или может и можна но я не нашел).
Дело в том, что мне нужно построить картинку
один в один которая имееться у меня в ТЗ
(хотел ее тоже вставить в сообщение, чтоб показать, но не знаю как,
хотя ты ее вставил), поэтому просто присоединил ее к сообщению.

А если я задал все свойства для картинки с помощью JFreeChart
Код: plaintext
\n public   class  Pie3D  extends  JPanel{\n    // Holds the data\n     private  DefaultPieDataset dataset =  new  DefaultPieDataset();\n\n    // Create a set of charts\n     private  JFreeChart chart3;\n\n    // Create a set of panels that can show charts\n     private  ChartPanel panel3;\n\n     public  Pie3D() {\n        // Initialize the dataset\n        dataset.setValue("A",  new   Double ( 120 ));\n        dataset.setValue("B",  new   Double ( 90 ));\n        dataset.setValue("C",  new   Double ( 60 ));\n        dataset.setValue("D",  new   Double ( 70 ));\n\n        chart3 = ChartFactory.createPieChart3D(\n                "", // The chart title\n                dataset,       // The dataset for the chart\n                false,          // Is a legend required?\n                true,          // Use tooltips\n                false          // Configure chart to generate URLs?\n        );\n        \n        PiePlot3D plot3 = ( PiePlot3D )chart3.getPlot();\n        // set start angle\n        plot3.setStartAngle( 150 );\n\n        // set foreground alpha\n        //plot3.setForegroundAlpha( 0.7f );\n\n        // set background\n        plot3.setBackgroundPaint( new  Color(0xDCDCDC));\n\n        // set section of paint\n        plot3.setSectionPaint( 0 ,  new  Color(0xFFA500));\n        plot3.setSectionPaint( 1 ,  new  Color(0xA52A2A));\n        plot3.setSectionPaint( 2 ,  new  Color(0xDC143C));\n        plot3.setSectionPaint( 3 ,  new  Color(0xFF7F50));\n\n        // set depth\n        plot3.setDepthFactor( 0 . 21 );\n\n        // don\'t show label\n        plot3.setLabelGenerator( null );\n\n        // Create this panel\n         this .setLayout(  new  GridLayout(  1 ,  1  ) );\n         this .panel3 =  new  ChartPanel( chart3 );\n         this .add( panel3 );\n    }\n\n     public   static   void  main( String[] args ) {\n        JFrame frame =  new  JFrame( "Pie3D" );\n        Pie3D chart =  new  Pie3D();\n\n        frame.getContentPane().add( chart, BorderLayout.CENTER );\n        frame.setSize(  400 ,  200  );\n        frame.setVisible( true );\n        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );\n    }\n}\n

но не хочу это выводить эту картинку как JAVA приложение,
а вывести ее на JSP страничке или может еще лучще
сразу сохранить в файл (*.gif). То как это можна реализовать.

И еще один маленький аспект, а ты случайно не знаеш как можна
для Pie3D задать в JFreeChart отступ по осям X и Y от границ,
а то по умолчанию там гдето отступ 20%.

Зарание благодарен,
если у тебя будет свободной время то ответь пожалуйста.

А может еще кто разбираеться в JFreeChart,
буду благодарен за любые советы.
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33264161
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxq
но не хочу это выводить эту картинку как JAVA приложение,
а вывести ее на JSP страничке

Не скажу, что твое, но ИМХО довольно похожее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE HTML  PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page  import ="de.laures.cewolf.ChartPostProcessor,
                 de.laures.cewolf.DatasetProducer,
                 de.laures.cewolf.tooltips.PieToolTipGenerator,
                 org.jfree.chart.JFreeChart,
                 org.jfree.chart.plot.PiePlot,
                 org.jfree.data.general.DefaultPieDataset,
                 org.jfree.data.general.PieDataset,
                 org.jfree.chart.plot.PiePlot3D,
                 java.awt.*,
                 java.math.BigDecimal,
                 java.util.Map"%>
<%@ taglib uri='/WEB-INF/cewolf-1.1.tld' prefix='cewolf' %>
<html>
<head>
  <title>Test Chart</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<%
  PieToolTipGenerator pieTG =  new  PieToolTipGenerator() {
     public  String generateToolTip(PieDataset dataset, Comparable section,  int  index) {
      Comparable key = dataset.getKey(index);
       return  key.toString() + "=" + dataset.getValue(key);
    }
  };
  pageContext.setAttribute("pieTG", pieTG);

  // Pie chart with no label
  ChartPostProcessor pieChartPostProcessor =  new  ChartPostProcessor() {
     public   void  processChart(Object chart, Map params) {
      PiePlot plot = (PiePlot) ((JFreeChart) chart).getPlot();
      plot.setLabelGenerator( null );

      plot.setStartAngle( 150 );
      // Set background
      plot.setBackgroundPaint( new  Color(0xDCDCDC));

      // Set section of paint
      plot.setSectionPaint( 0 ,  new  Color(0xFFA500));
      plot.setSectionPaint( 1 ,  new  Color(0xA52A2A));
      plot.setSectionPaint( 2 ,  new  Color(0xDC143C));
      plot.setSectionPaint( 3 ,  new  Color(0xFF7F50));

      // Set depth
      ((PiePlot3D)plot).setDepthFactor( 0 . 21 );

    }
  };
  pageContext.setAttribute("pieChartPostProcessor", pieChartPostProcessor);

  // Pie DatasetProducer
  DatasetProducer dsPie =  new  DatasetProducer() {

     final  String[] categories = {
      "Contestant 1", "Contestant 2", "Contestant 3", "Contestant 4"
    };

     public  Object produceDataset(Map params) {

       final   int [] votes =  new   int [ 4 ];

       int  totalVotes =  0 ;

       final   double [] percentVotes =  new   double [ 4 ];

       double [] perVotes =  new   double [ 4 ];

       for  ( int  i =  0 ; i < votes.length; i++) {
        votes[i] = ( int ) (Math.random() *  10  +  1 );
        totalVotes += votes[i];
      }

       for  ( int  c =  0 ; c < perVotes.length; c++) {
        perVotes[c] = ( double ) (votes[c] *  100 );
        percentVotes[c] = perVotes[c] / totalVotes;

         int  decimalPlace =  2 ;
        BigDecimal bd =  new  BigDecimal(percentVotes[c]);
        bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
        percentVotes[c] = bd.doubleValue();
      }
      DefaultPieDataset ds =  new  DefaultPieDataset();

       for  ( int  i =  0 ; i < categories.length; i++) {
        ds.setValue(categories[i], percentVotes[i]);
      }
       return  ds;
    }

     public  String getProducerId() {
       return  "PieDataProducer";
    }

     public   boolean  hasExpired(Map params, java.util.Date since) {
       return  false;
    }
  };

  pageContext.setAttribute("dsPie", dsPie);

%>

<jsp:useBean id="pageViews"  class ="com.test.PieChart"/>

<table width="100%" border="0" cellspacing="10" cellpadding="10">
<tr>
  <td>
    <cewolf:chart id="pieChart" title="Pie Chart" type="pie3D">
      <cewolf:chartpostprocessor id="pieChartPostProcessor"/>
      <cewolf:gradientpaint>
        <cewolf:point x="0" y="0" color="#FFFFFF"/>
        <cewolf:point x="300" y="0" color="#DDDDFF"/>
      </cewolf:gradientpaint>
      <cewolf:data>
        <cewolf:producer id="dsPie"/>
      </cewolf:data>
    </cewolf:chart>
    <cewolf:img chartid="pieChart" renderer="/cewolf" width="400" height="400">
      <cewolf:map tooltipgeneratorid="pieTG"/>
    </cewolf:img>
  </td>
</tr>
</table>

</body>
</html>
...
Рейтинг: 0 / 0
Ошибка при выполнении JSP страниц в CeWolf
    #33264708
maxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис СПАСИБО заработало.
С меня ПИВО(или можно что то покрепче).
Хотел задать тебе еще один вопрос( извени за мою наглость :) )

Но может ты знаеш :
можна както генерировать легенду только для определенной секции,
причем зарание ее отредактировав
например если у нас легенда для 0-сектора А = 120
то яхочу чтоб выводилось 35% ... for A

я попробывал добраться до этой легенды:
Код: plaintext
1.
2.
3.
LegendItemCollection lic =  plot.getLegendItems();
LegendItem li = lic.get( 0 );
System.out.println(li.getLabel());

также знаю как можна создать новый LegendItem

а как сделать чтоб LegendItemCollection содержал только
LegendItem -ы которые я сгенирировал сам.

И можна сделать так чтоб легедна размещалась в области диаграмы
а то по умолчанию в JFreeChart легенда размещаеться поза этой областью
А мне бы хотелось чтоб она размещалась как нарисунке
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при выполнении JSP страниц в CeWolf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]