どうもはじめまして。井村謙一と申します。
今、GAE/Jを使用してJava/Servlet/JSPの勉強をしています。
GAEの話題ではないかもしれませんが、質問させて下さい。
もし、他に適切なポスト先があれば、教えて下さい。
現在、JavaBeansを使用して、その値をServlet経由でJSPに表示させようとしています。
但し、ServletのURLにアクセスすると、以下のようなエラーメッセージがEclipseのコンソールに表示されてしまいます。
org.apache.jasper.JasperException: タイプ 'jp.allabout.PagerBean' のbean中の属
性 'A' の情報を発見できませんでした
JSPファイルの以下の記述の部分で、エラーが発生しているようです。
<jsp:getProperty name="PagerBean" property="A"/>
(1)JavaBeans
(2)Servlet
(3)JSP
(4)web.xml
ファイルの記述は、以下のようになっています。
(1)PagerBeanServlet.java
package jp.allabout;
public class PagerBean {
private int A;
private String B;
public PagerBean() {
}
public void setA(int A) { this.A = A; }
public int getA() { return this.A; }
public void setB(String B) { this.B = B; }
public String getB() { return this.B; }
}
(2)Pager_addServlet.java
package jp.allabout;
import javax.servlet.*;
import javax.servlet.http.*;
import jp.allabout.PagerBean;
@SuppressWarnings("serial")
public class Pager_addServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException {
PagerBean objPagerBean = null;
objPagerBean = new PagerBean();
request.setAttribute("PagerBean", objPagerBean);
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher("/Pager/
pager_index.jsp");
rd.forward(request,response);
}
}
(3)/Pager/pager_index.jsp
<?xml version="1.0" encoding="utf-8" ?>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;utf-8" />
<title>PersonalData Index</title>
</head>
<%@ page import="jp.allabout.PagerBean" %>
<body>
Test
<jsp:useBean id="PagerBean" class="jp.allabout.PagerBean"
scope="request" >
<jsp:setProperty name="PagerBean" property="A" value="123" />
<jsp:getProperty name="PagerBean" property="A"/>
<jsp:setProperty name="PagerBean" property="B" value="XYZ" />
<jsp:getProperty name="PagerBean" property="B"/>
</jsp:useBean>
</body>
</html>
(4)web.xml(関連部分)
<servlet>
<servlet-name>Pager_add</servlet-name>
<servlet-class>jp.allabout.Pager_addServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Pager_add</servlet-name>
<url-pattern>/Pager_add</url-pattern>
</servlet-mapping>
以上のようなソースを作成して、
http://localhost:8888/Pager_add
にアクセスしています。
ブラウザ上では、以下のような表示がされます。
HTTP ERROR 500
Problem accessing /Pager_add. Reason:
??? 'jp.allabout.PagerBean' ?bean???? 'A' ??????????????
Caused by:
org.apache.jasper.JasperException: ??? 'jp.allabout.PagerBean' ?
bean???? 'A' ??????????????
at
org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:
837)
何か理解不足の点があると思うのですが、JavaBeansの値を表示させる事が出来ません。
Javaの初歩的な質問で恐縮ですが、どこが間違っているか、教えて頂けるでしょうか。
最後に、Eclipseのコンソールに表示されるエラーメッセージを全て載せておきます。
2010/04/22 13:20:38 com.google.apphosting.utils.jetty.JettyLogger warn
警告: /Pager_add
org.apache.jasper.JasperException: タイプ 'jp.allabout.PagerBean' のbean中の属
性 'A' の情報を発見できませんでした
at
org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:
837)
at org.apache.jasper.compiler.Generator
$GenerateVisitor.visit(Generator.java:1015)
at org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:1062)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
at org.apache.jasper.compiler.Generator
$GenerateVisitor.visit(Generator.java:1296)
at org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
at org.apache.jasper.compiler.Generator.generate(Generator.java:3272)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:
244)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:
511)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
295)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at com.google.appengine.tools.development.PrivilegedJspServlet.access
$101(PrivilegedJspServlet.java:23)
at com.google.appengine.tools.development.PrivilegedJspServlet
$2.run(PrivilegedJspServlet.java:59)
at java.security.AccessController.doPrivileged(Native Method)
at
com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:
57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
511)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
390)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
418)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
70)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
at jp.allabout.Pager_addServlet.doGet(Pager_addServlet.java:20)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
511)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1166)
at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
51)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
122)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
388)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
418)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
70)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:349)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
542)
at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
409)
at org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:582)
2010/04/22 13:20:39
com.google.appengine.tools.development.LocalResourceFileServlet doGet
警告: No file found for: /favicon.ico
以上、宜しく御願い致します。
井村謙一
--
このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
このグループに投稿するには、
google-app-...@googlegroups.com にメールを送信してください。
このグループから退会するには、
google-app-engine...@googlegroups.com にメールを送信してください。
詳細については、
http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。