最近再看《Tomcat WEb开发与整合应用一书》,在第19章jndi技术的时候遇到了问题。我按照书中的例子做的:JavaBean的源文件:UserInfo.javapackage cn.ac.ict;public class UserInfo{
private String username = "guest";
private String password = "anonymous"; public UserInfo(){} public void setUsername(String username){
this.username = username;
}
public void setPassword(String password){
this.password = password;
} public String getUsername(){
return username;
}
public String getPassword(){
return password;
}
}
Tomcat环境配置文件:JNDI.xml<?xml version="1.0" encoding="UTF-8"?>
<Context crossContext="true"
docBase="E:/PublishBook/JNDI"
path="/JNDI"
debug="0"
reloadable="true"
swallowOutput="true"
workDir="work\Catalina\localhost\TomcatConfig">
<Resource name="bean/userinfo"
auth="Container"
type="cn.ac.ict.UserInfo"/>
<ResourceParams name="bean/userinfo">
<parameter>
<name>factory</name>
<value>org.apache.naming.factory.BeanFactory</value>
</parameter>
<parameter>
<name>username</name>
<value>maximum</value>
</parameter>
</ResourceParams>
</Context>
我的应用程序目录的web.xml文件<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"> <resource-env-ref>
<description>Object factory for UserInfo instances.</description>
<resource-env-ref-name>bean/userinfo</resource-env-ref-name>
<resource-env-ref-type>cn.ac.ict.UserInfo</resource-env-ref-type>
</resource-env-ref>
</web-app>
这个是应用JNDI服务的jsp文件:<%@ page import="javax.naming.*,cn.ac.ict.*"%>
<html>
<head>
<title>Generic JavaBean Resources Test</title>
</head><body>
<h2>Generic JavaBean Resources</h2>
<%
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
UserInfo bean = (UserInfo)envCtx.lookup("bean/userinfo");
out.println("Username:" + bean.getUsername() + ",Password:" + bean.getPassword());
%>
</body>
</html>
但是在运行的时候就是不行,异常提示为:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /javabeansource.jsp:1310: <%
11: Context initCtx = new InitialContext();
12: Context envCtx = (Context) initCtx.lookup("java:comp/env");
13: UserInfo bean = (UserInfo) envCtx.lookup("bean/userinfo");
14: out.println("Username = " + bean.getUsername() + ", password = " + bean.getPassword());
15: %>
16: </body>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.servlet.ServletException: Cannot create resource instance
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.javabeansource_jsp._jspService(javabeansource_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.naming.NamingException: Cannot create resource instance
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:142)
javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
org.apache.naming.NamingContext.lookup(NamingContext.java:792)
org.apache.naming.NamingContext.lookup(NamingContext.java:139)
org.apache.naming.NamingContext.lookup(NamingContext.java:780)
org.apache.naming.NamingContext.lookup(NamingContext.java:152)
org.apache.jsp.javabeansource_jsp._jspService(javabeansource_jsp.java:56)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
弄了老半天还是不行,实在愁死我了,大侠帮帮忙吧。我用的jsp环境是jdk1.5 + tomcat 5.5.17 + apache 2.0.55
private String username = "guest";
private String password = "anonymous"; public UserInfo(){} public void setUsername(String username){
this.username = username;
}
public void setPassword(String password){
this.password = password;
} public String getUsername(){
return username;
}
public String getPassword(){
return password;
}
}
Tomcat环境配置文件:JNDI.xml<?xml version="1.0" encoding="UTF-8"?>
<Context crossContext="true"
docBase="E:/PublishBook/JNDI"
path="/JNDI"
debug="0"
reloadable="true"
swallowOutput="true"
workDir="work\Catalina\localhost\TomcatConfig">
<Resource name="bean/userinfo"
auth="Container"
type="cn.ac.ict.UserInfo"/>
<ResourceParams name="bean/userinfo">
<parameter>
<name>factory</name>
<value>org.apache.naming.factory.BeanFactory</value>
</parameter>
<parameter>
<name>username</name>
<value>maximum</value>
</parameter>
</ResourceParams>
</Context>
我的应用程序目录的web.xml文件<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"> <resource-env-ref>
<description>Object factory for UserInfo instances.</description>
<resource-env-ref-name>bean/userinfo</resource-env-ref-name>
<resource-env-ref-type>cn.ac.ict.UserInfo</resource-env-ref-type>
</resource-env-ref>
</web-app>
这个是应用JNDI服务的jsp文件:<%@ page import="javax.naming.*,cn.ac.ict.*"%>
<html>
<head>
<title>Generic JavaBean Resources Test</title>
</head><body>
<h2>Generic JavaBean Resources</h2>
<%
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
UserInfo bean = (UserInfo)envCtx.lookup("bean/userinfo");
out.println("Username:" + bean.getUsername() + ",Password:" + bean.getPassword());
%>
</body>
</html>
但是在运行的时候就是不行,异常提示为:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /javabeansource.jsp:1310: <%
11: Context initCtx = new InitialContext();
12: Context envCtx = (Context) initCtx.lookup("java:comp/env");
13: UserInfo bean = (UserInfo) envCtx.lookup("bean/userinfo");
14: out.println("Username = " + bean.getUsername() + ", password = " + bean.getPassword());
15: %>
16: </body>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.servlet.ServletException: Cannot create resource instance
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.javabeansource_jsp._jspService(javabeansource_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.naming.NamingException: Cannot create resource instance
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:142)
javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
org.apache.naming.NamingContext.lookup(NamingContext.java:792)
org.apache.naming.NamingContext.lookup(NamingContext.java:139)
org.apache.naming.NamingContext.lookup(NamingContext.java:780)
org.apache.naming.NamingContext.lookup(NamingContext.java:152)
org.apache.jsp.javabeansource_jsp._jspService(javabeansource_jsp.java:56)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
弄了老半天还是不行,实在愁死我了,大侠帮帮忙吧。我用的jsp环境是jdk1.5 + tomcat 5.5.17 + apache 2.0.55
解决方案 »
- 用jspSmartUpload下载超长文件名不能完全显示?
- Struts 少jar包的问题
- 双线虚拟主机如何配数据库地址
- 用PreparedStatement是否就可以防止SQL注入了啊?
- (Ljava/util/List)Ljava/lang/String 具体如下
- 美人卷珠帘 深宫蹙娥眉 但见泪已痕 不知心恨谁 猛男编程序 宿舍皱粗眉 只见做半天 还是跪求人
- 为什么在BEAN中的一个方法在BEAN中测试好用,在.jsp中调用就不好用,请高手指教!
- 底单到帐
- jsp+oracle分页显示的问题
- 我现在要做一个聊天室,不过我以前没有做过,没有思路.(JSP+BEAN)
- 关于jsp tag使用的难题
- 高手看过来,INNERHTML 有没有逆运算啊,具体怎么做
太长了
没法看~~~~~