标签: tomcat7

禁用注释处理,但在servlet api 3.0(Tomcat7)中启用Web片段功能

我正在尝试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的处理.

java tomcat servlets tomcat7

17
推荐指数
2
解决办法
6238
查看次数

战争文件应该有多大?

Tomcat 7经理将war文件大小限制为50 Mo.

  • 为什么这个50 Mo的限制?
  • 什么应该是最大战争文件大小?(在实践中)

我正在使用Grails 2.2,它产生28 Mo的最小WAR.所以,50 Min的极限很容易达到.

java tomcat war tomcat7 grails-2.2

17
推荐指数
3
解决办法
2万
查看次数

如何通过IntelliJ IDEA 10.5处理Tomcat

我是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版.

intellij-idea tomcat7

16
推荐指数
1
解决办法
2万
查看次数

导出到Excel JSF和PrimeFaces

使用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)

java apache-poi primefaces jsf-2 tomcat7

16
推荐指数
1
解决办法
4万
查看次数

Apache Tomcat 7.0.40在1秒后消失

我为Windows 8下载了apache-tomcat-7.0.40,我按照说明使用C:\apache-tomcat-7.0.40> startup.batat my命令提示符.tomcat应用程序出现1秒然后消失,所以我可能文件安装不够用?我该怎么办?而我的本地主机是互联网信息服务.

tomcat7

16
推荐指数
3
解决办法
2万
查看次数

在哪里配置内部tomcat7 stdout/stderr日志文件

我根据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)

logging tomcat log4j tomcat7

16
推荐指数
3
解决办法
5万
查看次数

了解谁提供了servlet-api.jar,它是web容器还是Java EE下载的一部分

我需要了解编译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)

现在我的怀疑从这里开始:

  1. 什么是servlet-api.jar?
  2. 谁提供这个罐子?
  3. 每个web容器都提供这个jar,例如Tomcat,Jboss,glassfish吗?并且每个供应商是否为构建这个简单Servlet所需的jar提供了"相同的名称".
  4. 当我们下载Java EE时,这个jar是下载的一部分吗?或者我们是否将此文件作为Web容器的一部分?
  5. 考虑这种情况:

    假设我们使用Tomcat编译/构建简单的servlet(即构建servlet所需的tomcat版本的jar)并创建.war文件.我们可以在其他供应商的容器中部署战争吗?

java servlets java-ee tomcat7

16
推荐指数
1
解决办法
9443
查看次数

tomcat中的非容器线程错误是什么?

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)

所以问题是:当我看到顶部引用的日志时,它意味着什么?在非容器线程中发生错误是什么意思?我该如何重新创建呢?

java tomcat log4j tomcat7

16
推荐指数
2
解决办法
5367
查看次数

如何在同一个窗口中从Windows命令行启动Tomcat 7?

当我运行%TOMCAT_ROOT%\bin\startup.bat从一个Windows 7命令行,它会打开默认的命令行窗口设置一个新的窗口(我有他们的个性化).我宁愿在相同的提示符中在同一个命令窗口中运行它,而不是在单独的窗口中分叉.

在此输入图像描述

如您所见,上图中的内部Tomcat窗口较小且字体较小.我想在我执行的更大的父窗口中运行服务器startup.bash.

从本质上讲,我想在Windows上运行它,就像我运行时作为控制台Linux应用程序运行一样startup.sh.

command-line windows-7 tomcat7

16
推荐指数
2
解决办法
8478
查看次数

Tomcat 7.0.73不适用于Java 9

由于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)

有没有解决这个问题?

java tomcat tomcat7 java-9

16
推荐指数
1
解决办法
2万
查看次数