我正在尝试Tomcat 7.0和Servlet API 3.0.
我有一个Servlet API 2.5的应用程序.所以我编辑了web.xml来为Servlet API 3.0配置它.更改后,Tomcat的开始时间增加了14秒.
所以我设置<web-app metadata-complete="true" ...并且Tomcat的开始时间恢复正常,因为tomcat不扫描每个类的注释.这很好,但是web-fragment.xml功能也被禁用了.
我想知道是否可以禁用Tomcat的注释扫描,但是要启用web-fragment.xml的处理.
Tomcat 7经理将war文件大小限制为50 Mo.
我正在使用Grails 2.2,它产生28 Mo的最小WAR.所以,50 Min的极限很容易达到.
我是IntelliJ IDEA的新手.我试图在Tomcat中部署Web应用程序.
它无法部署,我无法在日志控制台中看到任何错误.
经过多次搜索,我能够找到文件~/Library/Caches/IntelliJIdea10/tomcat/_p1/logs/夹中的日志文件
.
这里有一堆日志文件,其中一个文件包含错误.然后,我可以解决问题并继续.
我是eclipse的用户,这个错误会直接出现在eclipse的日志控制台中.然而,IntelliJ IDEA并非如此.有人可以解释一下我在这里缺少什么吗?
此外,如果有人能指出如何在IDEA中完成与Tomcat的集成(为了更好地理解),那将是很好的.注意:我在Mac OS 10.6.8上使用IntelliJ IDEA 10.5.2 Ultimate版.
使用JDK 1.6,JSF 2.1,PrimeFaces 2.2.1,POI 3.2和Apache Tomcat 7
我正在尝试设置一个servlet,允许根据用户选择下载excel文件.excel文档在运行时创建.
没有错误,代码确实进入了servlet.
我点击按钮,没有任何反应.我没有使用PrimeFaces使用的数据表导出,因为我需要对Excel文档中的数据进行重新排序和自定义格式化.
ExportExcelReports.java
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"my.xls\"");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue(0.0);
FileOutputStream out = new FileOutputStream("my.xls");
workbook.write(out);
out.close();
}
Run Code Online (Sandbox Code Playgroud)
ProjectReportBean.java
public void getReportData() {
try {
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
HttpServletRequest request = (HttpServletRequest) ectx.getRequest();
HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
RequestDispatcher dispatcher = request.getRequestDispatcher("/ExportExcelReports"); …Run Code Online (Sandbox Code Playgroud) 我为Windows 8下载了apache-tomcat-7.0.40,我按照说明使用C:\apache-tomcat-7.0.40> startup.batat my命令提示符.tomcat应用程序出现1秒然后消失,所以我可能文件安装不够用?我该怎么办?而我的本地主机是互联网信息服务.
我根据http://tomcat.apache.org/tomcat-7.0-doc/logging.html使用tomcat 7.0.40和log4j配置
除了创建了一些日志文件之外,所有内容都按预期工作,这些日志文件实际上没有在我的log4j.properties中配置:
log4j.rootLogger=INFO, CATALINA
# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.RollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.log
log4j.appender.CATALINA.MaxFileSize=3MB
log4j.appender.CATALINA.MaxBackupIndex=10
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.LOCALHOST=org.apache.log4j.RollingFileAppender
log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.log
log4j.appender.LOCALHOST.MaxFileSize=3MB
log4j.appender.LOCALHOST.MaxBackupIndex=10
log4j.appender.LOCALHOST.Append=true
log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.MANAGER=org.apache.log4j.RollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.log
log4j.appender.MANAGER.MaxFileSize=3MB
log4j.appender.MANAGER.MaxBackupIndex=10
log4j.appender.MANAGER.Append=true
log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.HOST-MANAGER=org.apache.log4j.RollingFileAppender
log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager.log
log4j.appender.HOST-MANAGER.MaxFileSize=3MB
log4j.appender.HOST-MANAGER.MaxBackupIndex=10
log4j.appender.HOST-MANAGER.Append=true
log4j.appender.HOST-MANAGER.Encoding=UTF-8
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout = …Run Code Online (Sandbox Code Playgroud) 我需要了解编译servlet所需的serlvet-api.jar.
我正在构建一个简单的servlet,如下所示:
import javax.servlet.*;
import javax.servlet.http.*;
public class FirstServlet extends HttpServlet {
// Remaining code here
}
Run Code Online (Sandbox Code Playgroud)
我知道我们需要servlet-api.jar文件来编译这个简单的servlet,如下所示:
javac -classpath /path/where/jar/is/servlet-api.jar
Run Code Online (Sandbox Code Playgroud)
现在我的怀疑从这里开始:
考虑这种情况:
假设我们使用Tomcat编译/构建简单的servlet(即构建servlet所需的tomcat版本的jar)并创建.war文件.我们可以在其他供应商的容器中部署战争吗?
在catalina.out我的日志中,我Tomcat7收到由第三方库引起的错误,该库以以下内容开头:
INFO: An error occurred in processing while on a non-container thread. The connection will be closed immediately
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
Run Code Online (Sandbox Code Playgroud)
在非容器线程中发生错误的真正含义是什么?
我试图通过Thread从我的应用程序代码中生成一个新的异常来获取类似的日志消息:
new Thread(){
@Override
public void run() {
Integer.parseInt("boom");
}
}.start();
Run Code Online (Sandbox Code Playgroud)
但它导致了
Exception in thread "Thread-28" java.lang.NumberFormatException: For input string: "boom"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at ...
Run Code Online (Sandbox Code Playgroud)
所以问题是:当我看到顶部引用的日志时,它意味着什么?在非容器线程中发生错误是什么意思?我该如何重新创建呢?
当我运行%TOMCAT_ROOT%\bin\startup.bat从一个Windows 7命令行,它会打开默认的命令行窗口设置一个新的窗口(我有他们的个性化).我宁愿在相同的提示符中在同一个命令窗口中运行它,而不是在单独的窗口中分叉.
如您所见,上图中的内部Tomcat窗口较小且字体较小.我想在我执行的更大的父窗口中运行服务器startup.bash.
从本质上讲,我想在Windows上运行它,就像我运行时作为控制台Linux应用程序运行一样startup.sh.
由于catalina.sh中的默认"java.endorsed.dirs"选项,因此无法使用java 9启动基于tomcat的应用程序.
-Djava.endorsed.dirs=/usr/local/share/tomcat/endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)
有没有解决这个问题?
tomcat7 ×10
java ×6
tomcat ×5
log4j ×2
servlets ×2
apache-poi ×1
command-line ×1
grails-2.2 ×1
java-9 ×1
java-ee ×1
jsf-2 ×1
logging ×1
primefaces ×1
war ×1
windows-7 ×1