Click here to Skip to main content
15,922,407 members
Home / Discussions / Java
   

Java

 
QuestionJfreechart with jsp and servlet giving error Pin
cmaheshwari1611-Aug-11 0:13
cmaheshwari1611-Aug-11 0:13 
AnswerRe: Jfreechart with jsp and servlet giving error Pin
Gerben Jongerius11-Aug-11 20:22
Gerben Jongerius11-Aug-11 20:22 
GeneralRe: Jfreechart with jsp and servlet giving error Pin
cmaheshwari1611-Aug-11 23:03
cmaheshwari1611-Aug-11 23:03 
QuestionJAAS Question Pin
AndreFratelli10-Aug-11 9:12
AndreFratelli10-Aug-11 9:12 
QuestionExecute commands in putty prompt through java Pin
kartikdasani10-Aug-11 4:13
kartikdasani10-Aug-11 4:13 
AnswerRe: Execute commands in putty prompt through java Pin
Nagy Vilmos10-Aug-11 5:25
professionalNagy Vilmos10-Aug-11 5:25 
AnswerRe: Execute commands in putty prompt through java Pin
David Skelly10-Aug-11 22:24
David Skelly10-Aug-11 22:24 
QuestionHow to use jFreechart in struts2 Pin
cmaheshwari169-Aug-11 19:24
cmaheshwari169-Aug-11 19:24 
XML
Hi All,

I am little bit new to struts framework though I have used tiles in struts application. Now I want to display charts in my application. After searching I found jFreechart library to create charts. (Though it doesn't generate all the charts, like box in web application).

Now I also found some link on how to use jFreechart in struts application. Though the post are not much descriptive, I tried in the same way to incorporate the chart functionality but it is not working......

Can someone please provide the entries to be made in [B]struts.xml[/B], [B]web.xml[/B] to make this functionality work.

Pls find below the different files I am using to run my application.
I have made the changes that I made for graph functionality in bold

[B][I][U]Struts.xml[/U][/I][/B]

[CODE]<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
 <!--
<package name="actionGraph" namespace="/actionGraph" extends="jfreechart-default">
<action name="Graph" class="graph.Graph">
 <result name="success" type="chart">
   <param name="value">chart</param>
   <param name="type">png</param>
   <param name="width">640</param>
   <param name="height">480</param>
 </result>

</action>
</package>
-->



<package name="portal" namespace="/portal" extends="struts-default , [B]jfreechart-default[/B]
">

<result-types>
  <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>

    [B]<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult">
        <param name="height">150</param>
        <param name="width">200</param>
    </result-type>[/B]


</result-types>


<global-results>
  <result name="error">/pages/error.jsp</result>
</global-results>

<global-exception-mappings>
   <exception-mapping exception="java.lang.NullPointerException" result="error"/>
   <exception-mapping exception="java.lang.NumberFormatException" result="error"/>
   <exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>


<action name="Login" class="graph.Login">
  <result name="success">/pages/display.jsp</result>
  <result name="error">/pages/login.jsp</result>
  <result name="input">/pages/login.jsp</result>
</action>

[B]<action name="Graph" class="graph.Graph">
 <result name="success" type="chart">
   <param name="value">chart</param>
   <param name="type">png</param>
   <param name="width">640</param>
   <param name="height">480</param>

 </result>
 <result name="error">/pages/display.jsp</result>

</action>
[/B]
</package>
</struts>[/CODE]


[B][I][U]web.xml[/U][/I][/B]

[CODE]<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>graphFunctionWeb</display-name>

  <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

  <filter>
    <filter-name>Tiles Filter</filter-name>
    <filter-class>org.apache.tiles.web.startup.TilesFilter</filter-class>
        <init-param>
            <param-name>
              org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
            </param-name>
            <param-value>
              /WEB-INF/tiles-defs.xml,/org/apache/tiles/classpath-defs.xml
            </param-value>
    </init-param>
    </filter>

   [B] <filter>
    <filter-name>Chart Filter</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ChartResult</filter-class>

    </filter>[/B]

  <filter-mapping>
        <filter-name>Chart Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

  <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

    <filter-mapping>
     <filter-name>Tiles Filter</filter-name>
         <url-pattern>/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

 [B]<filter-mapping>
        <filter-name>Chart Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>[/B]

    <listener>
        <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
    </listener>

  <welcome-file-list>
        <welcome-file>/pages/login.jsp</welcome-file>
   </welcome-file-list>

  <servlet>
      <servlet-name>tiles</servlet-name>
      <servlet-class>org.apache.tiles.servlet.TilesServlet</servlet-class>
      <init-param>
         <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
         <param-value>/WEB-INF/tiles-defs.xml</param-value>
      </init-param>
     <load-on-startup>2</load-on-startup>
   </servlet>

</web-app>[/CODE]

[B][I][U]Graph.java[/U][/I][/B]

[CODE]package graph;

import java.util.*;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.StandardXYItemRenderer;
import org.jfree.data.*;

import com.opensymphony.xwork2.ActionSupport;


public class Graph extends ActionSupport {



    private JFreeChart chart;

    public String execute() throws Exception {
            // chart creation logic...
            XYSeries dataSeries = new XYSeries("first"); // pass a key for this serie
            for (int i = 0; i <= 100; i++) {
                    dataSeries.add(i, i+100);
            }
            XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);

            ValueAxis xAxis = new NumberAxis("Raw Marks");
            ValueAxis yAxis = new NumberAxis("Moderated Marks");

            // set my chart variable
            chart =
                    new JFreeChart( "Moderation Function", JFreeChart.DEFAULT_TITLE_FONT,
                            new XYPlot( xyDataset, xAxis, yAxis, new StandardXYItemRenderer(StandardXYItemRenderer.LINES)),
                            false);
            chart.setBackgroundPaint(java.awt.Color.white);

            return SUCCESS;
    }

// this method will get called if we specify <param name="value">chart</param>
    public JFreeChart getChart() {
            return chart;
    }



}[/CODE]


After logging I am redirecting to display.jsp

[CODE]<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Graph display</title>
</head>
<body>
hellooooooooooooooooooo

 <div align="center">
     <center>
     <table border = "0" cellpadding = "0" cellspacing = "0" width="400">
     <tr>
         <td>
             <ul>
                 <li><a href="portal/Graph.action">Login Application </a></li>
             </ul>
         </td>
     </tr>
     </table>
     </center>
</div>

</body>
</html>[/CODE]

The error I am getting is :
[COLOR="Red"]SEVERE: Exception starting filter Chart Filter
java.lang.ClassCastException: org.apache.struts2.dispatcher.ChartResult cannot be cast to javax.servlet.Filter
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4071)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4725)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Aug 10, 2011 10:08:08 AM org.apache.catalina.core.ApplicationContext log
INFO: TilesDecorationFilter:Initializing filter
Aug 10, 2011 10:08:09 AM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Aug 10, 2011 10:08:09 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/graphFunctionWeb] startup failed due to previous errors
Aug 10, 2011 10:08:09 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/graphFunctionWeb] created a ThreadLocal with key of type [com.opensymphony.xwork2.ActionContext.ActionContextThreadLocal] (value [com.opensymphony.xwork2.ActionContext$ActionContextThreadLocal@ce16ad]) and a value of type [com.opensymphony.xwork2.ActionContext] (value [com.opensymphony.xwork2.ActionContext@32bd65]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Aug 10, 2011 10:08:09 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/graphFunctionWeb] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@130633a]) and a value of type [com.opensymphony.xwork2.inject.InternalContext[]] (value [[Lcom.opensymphony.xwork2.inject.InternalContext;@1c286e2]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Aug 10, 2011 10:08:10 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Aug 10, 2011 10:08:10 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Aug 10, 2011 10:08:10 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/58  config=null
Aug 10, 2011 10:08:10 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2670 ms[/COLOR]


//////////////////////////////////////////////////////////////////////////////////

But the same code runs when I remove the chart functionality from the xml files. please check and provide some input, will appreciate if u will provide the code snippet.

Some links I checked like, [url]http://struts.apache.org/2.1.6/struts2-plugins/struts2-jfreechart-plugin/apidocs/org/apache/struts2/dispatcher/ChartResult.html[/url]
but not much useful.


Regards,
Chandan

AnswerRe: How to use jFreechart in struts2 Pin
cmaheshwari1611-Aug-11 0:01
cmaheshwari1611-Aug-11 0:01 
QuestionCheck if a program is installed on Linux or Mac Pin
CodeGust8-Aug-11 16:59
CodeGust8-Aug-11 16:59 
AnswerRe: Check if a program is installed on Linux or Mac Pin
Richard MacCutchan8-Aug-11 21:29
mveRichard MacCutchan8-Aug-11 21:29 
AnswerRe: Check if a program is installed on Linux or Mac Pin
jschell10-Aug-11 9:48
jschell10-Aug-11 9:48 
GeneralRe: Check if a program is installed on Linux or Mac Pin
David Skelly10-Aug-11 22:16
David Skelly10-Aug-11 22:16 
GeneralRe: Check if a program is installed on Linux or Mac Pin
jschell11-Aug-11 12:53
jschell11-Aug-11 12:53 
GeneralRe: Check if a program is installed on Linux or Mac Pin
David Skelly11-Aug-11 22:07
David Skelly11-Aug-11 22:07 
Questionajax popup Pin
sundarkarthi5-Aug-11 2:19
sundarkarthi5-Aug-11 2:19 
AnswerRe: ajax popup Pin
TorstenH.5-Aug-11 2:51
TorstenH.5-Aug-11 2:51 
Questionare there any functions in java like ispunct, isspace in C_? Pin
quartaela4-Aug-11 1:54
quartaela4-Aug-11 1:54 
AnswerRe: are there any functions in java like ispunct, isspace in C_? Pin
Richard MacCutchan4-Aug-11 2:48
mveRichard MacCutchan4-Aug-11 2:48 
GeneralRe: are there any functions in java like ispunct, isspace in C_? Pin
quartaela4-Aug-11 2:57
quartaela4-Aug-11 2:57 
GeneralRe: are there any functions in java like ispunct, isspace in C_? Pin
David Skelly4-Aug-11 4:53
David Skelly4-Aug-11 4:53 
GeneralRe: are there any functions in java like ispunct, isspace in C_? Pin
quartaela4-Aug-11 5:37
quartaela4-Aug-11 5:37 
GeneralRe: are there any functions in java like ispunct, isspace in C_? Pin
Richard MacCutchan4-Aug-11 7:12
mveRichard MacCutchan4-Aug-11 7:12 
AnswerRe: are there any functions in java like ispunct, isspace in C_? Pin
jschell4-Aug-11 8:24
jschell4-Aug-11 8:24 
GeneralRe: are there any functions in java like ispunct, isspace in C_? Pin
quartaela11-Aug-11 5:16
quartaela11-Aug-11 5:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.