You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Alexey Poimtsev (JIRA)" <ji...@apache.org> on 2006/12/14 16:47:57 UTC

[jira] Created: (WW-1561) Exception using form tag

Exception using form tag
------------------------

                 Key: WW-1561
                 URL: http://issues.apache.org/struts/browse/WW-1561
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.0.1
         Environment: Windows XP
Jetty 6.0.1
Caucho Resin 3.0.22
            Reporter: Alexey Poimtsev


Hi, all.
I try to develop simple forms application with this code:

index.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>My page</title>
	</head>
	<body>
 	<s:form action="sendSMS" method="post">
			<s:textfield name="smsFrom">Message From:</s:textfield> 
					<s:textfield name="smsTo">Message To:</s:textfield>
					<s:textarea name="smsMessageBody" cols="20" rows="10">Message:</s:textarea>
					<s:submit type="submit" value="Submit" />
		</s:form>
	</body>
</html>

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>Struts 2 TestApp</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext*.xml</param-value>
    </context-param>
    <filter>
        <filter-name>Struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>        
    </welcome-file-list>
</web-app>

struts.xml

<?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>
	<package name="default">
		<default-interceptor-ref name="defaultStack" />
		<action name="sendSMS" class="com.alec_c4.testApp.SendSMS">
			<result name="success" type="dispatcher">
				/success.jsp
			</result>
			<result name="error" type="dispatcher">/fail.jsp</result>
			<interceptor-ref name="servlet-config" />
		</action>
	</package>
</struts>


/**
 * 
 */

package com.alec_c4.testApp;

import java.util.Map;
import org.apache.struts2.interceptor.ParameterAware;
import com.opensymphony.xwork2.ActionSupport;
/**
 * @author Alec C4
 *
 */
public class SendSMS extends ActionSupport implements ParameterAware {

	private static final long serialVersionUID = 2775840359087216729L;
	String[] smsFrom;
	String[] smsTo;
	String[] smsMessageBody;

	
	
	public Map parameters;
	
	  public Map getParameters() {
		    return parameters;
		  }

	  public void setParameters(Map parameters) {
		    this.parameters = parameters;
		  }	
	
	public String execute () throws Exception {
		// Some Business Logic
		smsFrom = (String[]) parameters.get("smsFrom");
		smsTo = (String[]) parameters.get("smsTo");
		smsMessageBody = (String[]) parameters.get("smsMessageBody");
		if (smsFrom == null || smsFrom[0] == null || smsFrom[0].length() == 0) 
		return ERROR;
		else return SUCCESS;
	}
}

and when i have compiled application i put this one in webapp root and start the server. As a result i see this exception:

2006-12-14 18:35:11.713::WARN:  /testApp/index.jsp
java.lang.NullPointerException
        at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:703)
        at org.apache.struts2.components.UIBean.end(UIBean.java:450)
        at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTa
gSupport.java:36)
        at org.apache.jsp.index_jsp._jspx_meth_s_textfield_0(org.apache.jsp.inde
x_jsp:200)
        at org.apache.jsp.index_jsp._jspx_meth_s_form_0(org.apache.jsp.index_jsp
:143)
        at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:93)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:358)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4
40)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445
)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
56)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:2
26)

Could you tell me please - what the problem is ? This problem is actual for Jetty and Resin.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (WW-1561) Exception using form tag

Posted by "Ted Husted (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/struts/browse/WW-1561?page=all ]

Ted Husted updated WW-1561:
---------------------------

    Fix Version/s: 2.0.2

> Exception using form tag
> ------------------------
>
>                 Key: WW-1561
>                 URL: http://issues.apache.org/struts/browse/WW-1561
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.0.1
>         Environment: Windows XP
> Jetty 6.0.1
> Caucho Resin 3.0.22
>            Reporter: Alexey Poimtsev
>             Fix For: 2.0.2
>
>
> Hi, all.
> I try to develop simple forms application with this code:
> index.jsp
> <%@ taglib uri="/struts-tags" prefix="s" %>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> 	<head>
> 		<title>My page</title>
> 	</head>
> 	<body>
>  	<s:form action="sendSMS" method="post">
> 			<s:textfield name="smsFrom">Message From:</s:textfield> 
> 					<s:textfield name="smsTo">Message To:</s:textfield>
> 					<s:textarea name="smsMessageBody" cols="20" rows="10">Message:</s:textarea>
> 					<s:submit type="submit" value="Submit" />
> 		</s:form>
> 	</body>
> </html>
> web.xml
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
> <web-app>
>     <display-name>Struts 2 TestApp</display-name>
>     <context-param>
>         <param-name>contextConfigLocation</param-name>
>         <param-value>classpath*:applicationContext*.xml</param-value>
>     </context-param>
>     <filter>
>         <filter-name>Struts2</filter-name>
>         <filter-class>
>             org.apache.struts2.dispatcher.FilterDispatcher
>         </filter-class>
>     </filter>
>     <filter-mapping>
>         <filter-name>Struts2</filter-name>
>         <url-pattern>/*</url-pattern>
>     </filter-mapping>
>     <listener>
>         <listener-class>
>             org.springframework.web.context.ContextLoaderListener
>         </listener-class>
>     </listener>
>     <welcome-file-list>
>         <welcome-file>index.html</welcome-file>
>         <welcome-file>index.jsp</welcome-file>        
>     </welcome-file-list>
> </web-app>
> struts.xml
> <?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>
> 	<package name="default">
> 		<default-interceptor-ref name="defaultStack" />
> 		<action name="sendSMS" class="com.alec_c4.testApp.SendSMS">
> 			<result name="success" type="dispatcher">
> 				/success.jsp
> 			</result>
> 			<result name="error" type="dispatcher">/fail.jsp</result>
> 			<interceptor-ref name="servlet-config" />
> 		</action>
> 	</package>
> </struts>
> /**
>  * 
>  */
> package com.alec_c4.testApp;
> import java.util.Map;
> import org.apache.struts2.interceptor.ParameterAware;
> import com.opensymphony.xwork2.ActionSupport;
> /**
>  * @author Alec C4
>  *
>  */
> public class SendSMS extends ActionSupport implements ParameterAware {
> 	private static final long serialVersionUID = 2775840359087216729L;
> 	String[] smsFrom;
> 	String[] smsTo;
> 	String[] smsMessageBody;
> 	
> 	
> 	public Map parameters;
> 	
> 	  public Map getParameters() {
> 		    return parameters;
> 		  }
> 	  public void setParameters(Map parameters) {
> 		    this.parameters = parameters;
> 		  }	
> 	
> 	public String execute () throws Exception {
> 		// Some Business Logic
> 		smsFrom = (String[]) parameters.get("smsFrom");
> 		smsTo = (String[]) parameters.get("smsTo");
> 		smsMessageBody = (String[]) parameters.get("smsMessageBody");
> 		if (smsFrom == null || smsFrom[0] == null || smsFrom[0].length() == 0) 
> 		return ERROR;
> 		else return SUCCESS;
> 	}
> }
> and when i have compiled application i put this one in webapp root and start the server. As a result i see this exception:
> 2006-12-14 18:35:11.713::WARN:  /testApp/index.jsp
> java.lang.NullPointerException
>         at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:703)
>         at org.apache.struts2.components.UIBean.end(UIBean.java:450)
>         at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTa
> gSupport.java:36)
>         at org.apache.jsp.index_jsp._jspx_meth_s_textfield_0(org.apache.jsp.inde
> x_jsp:200)
>         at org.apache.jsp.index_jsp._jspx_meth_s_form_0(org.apache.jsp.index_jsp
> :143)
>         at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:93)
>         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
> .java:358)
>         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4
> 40)
>         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445
> )
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
> 56)
>         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:2
> 26)
> Could you tell me please - what the problem is ? This problem is actual for Jetty and Resin.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Resolved: (WW-1561) Exception using form tag

Posted by "Ted Husted (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/struts/browse/WW-1561?page=all ]

Ted Husted resolved WW-1561.
----------------------------

    Resolution: Not A Problem

It's better to post something like this to the user list. In a cause like this, the problem is more likely with the application configuration than the firamework. 

* http://struts.apache.org/mail.html

I was able to get the case by adding it to struts-blank and streamlining the configuration. 

<package name="default" extends="struts-default">
    <action name="sendSMS" class="example.SendSMS">
        <result>/success.jsp</result>
        <result name="error">/fail.jsp</result>
    </action>
</package> 

When specifying new stacks, remember that the new stack *completely* overrides the old. Also, the S2 default stack does include most everything that will be useful to most applications, inlcuding the servlet-config interceptor. 

* http://struts.apache.org/2.x/docs/interceptors.html

-Ted.





> Exception using form tag
> ------------------------
>
>                 Key: WW-1561
>                 URL: http://issues.apache.org/struts/browse/WW-1561
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.0.1
>         Environment: Windows XP
> Jetty 6.0.1
> Caucho Resin 3.0.22
>            Reporter: Alexey Poimtsev
>             Fix For: 2.0.2
>
>
> Hi, all.
> I try to develop simple forms application with this code:
> index.jsp
> <%@ taglib uri="/struts-tags" prefix="s" %>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> 	<head>
> 		<title>My page</title>
> 	</head>
> 	<body>
>  	<s:form action="sendSMS" method="post">
> 			<s:textfield name="smsFrom">Message From:</s:textfield> 
> 					<s:textfield name="smsTo">Message To:</s:textfield>
> 					<s:textarea name="smsMessageBody" cols="20" rows="10">Message:</s:textarea>
> 					<s:submit type="submit" value="Submit" />
> 		</s:form>
> 	</body>
> </html>
> web.xml
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
> <web-app>
>     <display-name>Struts 2 TestApp</display-name>
>     <context-param>
>         <param-name>contextConfigLocation</param-name>
>         <param-value>classpath*:applicationContext*.xml</param-value>
>     </context-param>
>     <filter>
>         <filter-name>Struts2</filter-name>
>         <filter-class>
>             org.apache.struts2.dispatcher.FilterDispatcher
>         </filter-class>
>     </filter>
>     <filter-mapping>
>         <filter-name>Struts2</filter-name>
>         <url-pattern>/*</url-pattern>
>     </filter-mapping>
>     <listener>
>         <listener-class>
>             org.springframework.web.context.ContextLoaderListener
>         </listener-class>
>     </listener>
>     <welcome-file-list>
>         <welcome-file>index.html</welcome-file>
>         <welcome-file>index.jsp</welcome-file>        
>     </welcome-file-list>
> </web-app>
> struts.xml
> <?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>
> 	<package name="default">
> 		<default-interceptor-ref name="defaultStack" />
> 		<action name="sendSMS" class="com.alec_c4.testApp.SendSMS">
> 			<result name="success" type="dispatcher">
> 				/success.jsp
> 			</result>
> 			<result name="error" type="dispatcher">/fail.jsp</result>
> 			<interceptor-ref name="servlet-config" />
> 		</action>
> 	</package>
> </struts>
> /**
>  * 
>  */
> package com.alec_c4.testApp;
> import java.util.Map;
> import org.apache.struts2.interceptor.ParameterAware;
> import com.opensymphony.xwork2.ActionSupport;
> /**
>  * @author Alec C4
>  *
>  */
> public class SendSMS extends ActionSupport implements ParameterAware {
> 	private static final long serialVersionUID = 2775840359087216729L;
> 	String[] smsFrom;
> 	String[] smsTo;
> 	String[] smsMessageBody;
> 	
> 	
> 	public Map parameters;
> 	
> 	  public Map getParameters() {
> 		    return parameters;
> 		  }
> 	  public void setParameters(Map parameters) {
> 		    this.parameters = parameters;
> 		  }	
> 	
> 	public String execute () throws Exception {
> 		// Some Business Logic
> 		smsFrom = (String[]) parameters.get("smsFrom");
> 		smsTo = (String[]) parameters.get("smsTo");
> 		smsMessageBody = (String[]) parameters.get("smsMessageBody");
> 		if (smsFrom == null || smsFrom[0] == null || smsFrom[0].length() == 0) 
> 		return ERROR;
> 		else return SUCCESS;
> 	}
> }
> and when i have compiled application i put this one in webapp root and start the server. As a result i see this exception:
> 2006-12-14 18:35:11.713::WARN:  /testApp/index.jsp
> java.lang.NullPointerException
>         at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:703)
>         at org.apache.struts2.components.UIBean.end(UIBean.java:450)
>         at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTa
> gSupport.java:36)
>         at org.apache.jsp.index_jsp._jspx_meth_s_textfield_0(org.apache.jsp.inde
> x_jsp:200)
>         at org.apache.jsp.index_jsp._jspx_meth_s_form_0(org.apache.jsp.index_jsp
> :143)
>         at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:93)
>         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
> .java:358)
>         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4
> 40)
>         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445
> )
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
> 56)
>         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:2
> 26)
> Could you tell me please - what the problem is ? This problem is actual for Jetty and Resin.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira