Servlet jsp is not available

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet jsp is not available相关的知识,希望对你有一定的参考价值。

我在/webapps下建立myweb的目录,里面写了一个Hello.jsp(代码如下)
<%@ page language="java" pageEncoding="gbk" import="java.util.Date"%>
<html>
<head>
<title>Hello Jsp</title>
</head>
<body>
<h1>hello jsp</h1>
<h1><%=new Date()%></h1>
</body>
</html>
tomcat的主页能打开,可以访问同目录下的静态页面
访问http://localhost:8080/myweb/Hello.jsp就报了以下错误
HTTP Status 404 - Servlet jsp is not available

type: Status report

message: Servlet jsp is not available

description: The requested resource (Servlet jsp is not available) is not available.
CATALINA_HOME=D:\Tomcat5.0
classpath=.;C:\Program Files\Java\jdk1.6.0_16\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_16\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_16
path=.;C:\Program Files\Java\jdk1.6.0_16\bin
java程序时可以编译和运行的

servlet 和 jsp需要web容器下导入第三方jar来支持,检查classpath里面是不是没有设置servlet-jar的路径和jsp-api的路径。
解决方法:

下载 servlet-api.jar 这个包然后导入工程发布
或者把这个包copy到 TOMCAT_HOME\\webapps\\工程名\\WEB-INF\\lib里
参考技术A 先试试能不能加载你的index.jsp页面
不能得话就是说你的项目配置文件路径有问题。
参考技术B 没找到你的这个JSP文件。 检查下你的项目,是否编译通过,配置文件是否正确,web.xml这些。 参考技术C 你先查看以下你的classpath里面是不是没有设置servlet-jar的路径。

你的Apache 装在什么地方的你可以找,你在classpath里面要有下面这个地址,比如我的就是,你可以先查找,然后重新设置环境变量看看
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar;本回答被提问者和网友采纳
参考技术D 虚拟目录没设对

SQL Server 2005 sp_send_dbmail出现Internal error at FormatRowset (Reason: Not enough storage is availa

案例环境:

 

操作系统: Windows 2003 SE 32bit(SP2)

数据库版本:Microsoft SQL Server 2005 - 9.00.5069.00 (Intel X86)

            Aug 22 2012 16:01:52

            Copyright (c) 1988-2005 Microsoft Corporation

            Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

 

案例分析:

 

如下所示,使用下面SQL语句发送邮件时,遇到一个非常奇怪的错误信息:Not enough storage is available to complete this operation

EXEC msdb.dbo.sp_send_dbmail @recipients = \'konglb@xxx.com\',
     @subject = \'it is only test\', @body = NULL, @body_format = \'text\',
     @query_result_separator = \'---\',
     @query = \'SELECT * FROM  MESDB.dbo.MES_DAILY_CLOSING_LOG\';

 

Msg 22050, Level 16, State 1, Line 22

Error formatting query, probably invalid parameters

Msg 14661, Level 16, State 1, Procedure sp_send_dbmail, Line 517

Query execution failed: Sqlcmd: Error: Internal error at GetDataRowset (Reason: Not enough storage is available to complete this operation).

Sqlcmd: Error: Internal error at FormatRowset (Reason: Not enough storage is available to complete this operation).

 

clip_image001

 

错误虽然提示storage not engough,其实这个错误跟存储没有任何关系,这个表MES_DAILY_CLOSING_LOG里面有三个字段为NVARCHAR(MAX),采取下面两种方式可以临时解决这个问题。

 

1: 如果在@query里面排除这三个NVARCHAR(MAX)字段,那么邮件正常发送,不会出现任何错误。

2: 如果在@query里面将这个字段做一下转换,例如CAST(MAIL_RECEIPS AS NVARCHAR(4000)),那么邮件也能正常发送。

 

在SQL Server 2008、 SQL Server 2012下都不会发生,另外在SQL Server 2005(9.00.5000.00)这个版本下测试,也没有出现这个问题。只有这台服务器会出错,后面在这篇sp_help_jobsteplog fails when run as a @query of sp_send_dbmail章里面作者描述,重启数据库服务后,就不会出现这个问题。等了一周终于等到一个合适的时机重启了服务器,重启过后验证发现,果然这个错误就消失了。网上关于这个错误的资料非常少,严重怀疑是触发了数据库的某一个Bug导致。

 

参考资料:

https://social.msdn.microsoft.com/Forums/en-US/0882f984-58f4-4a2a-8d0c-5f2c1e3cc853/msdbdbospsenddbmail-error?forum=transactsql

http://dba.stackexchange.com/questions/3591/sp-help-jobsteplog-fails-when-run-as-a-query-of-sp-send-dbmail

 

以上是关于Servlet jsp is not available的主要内容,如果未能解决你的问题,请参考以下文章

jsp在访问的时候,调试信息输出ReferenceError:xxx is not defined

JAVA 调试程序的时候出现The requested resource is not available,怎么处理

IDEA报错is not assignable to javax.servlet.Servlet

JSP引入报错--package javax.servlet.jsp does not exist

IllegalStateException: [..] is not a jakarta.servlet.Filter

maven项目出现Xxx is not a Servlet的问题