标签: tomcat7

Tomcat 7会话cookie路径

我的应用程序和Tomcat 7存在很大问题.我的应用程序需要将会话cookie设置为"/"路径而不是"/ context"路径.在tomcat 6中,它是向Connector添加另一个属性的问题(emptySessionPath ="true"),Tomcat 7无法识别此事.我知道Servlet 3.0规范允许在每个上下文的基础上配置它,但我无法使它与Tomcat 7一起使用.它仍然添加了上下文路径而不是"/".

我将非常感谢收到如何做到这一点.

tomcat servlets servlet-3.0 tomcat7

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

登录Tomcat的Manager-App时出现401 Unauthorized错误

我正在尝试使用Tomcat 7.0.22中的管理器应用程序登录Mac OS X 10.7.这是我得到的错误:http://f.cl.ly/items/421q1K3f1i0X1H1M181v/so.tiff

401 Unauthorized

You are not authorized to view this page. If you have not changed any configuration files, please examine the file conf/tomcat-users.xml in your installation. That file must contain the credentials to let you use this webapp.

For example, to add the manager-gui role to a user named tomcat with a password of s3cret, add the following to the config file listed above.

<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
Run Code Online (Sandbox Code Playgroud)

我已经在我的tomcat-users.xml中添加了这个,仍然没有使用相同的用户名/密码.

<tomcat-users> …
Run Code Online (Sandbox Code Playgroud)

terminal tomcat7 manager-app osx-lion

23
推荐指数
5
解决办法
6万
查看次数

如何修复Tomcat警告:尝试对锁定的用户进行身份验证?

我正在使用Tomcat 7 for Spring和JPA Application,数据库MySQL.一切都工作正常.但有时realm.LockOutRealm验证问题将出现.我还在我的应用程序中使用了连接池,如:

persistence.xml中:

<properties>
      <property name="hibernate.connection.username" value="---"/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.password" value="----------"/>
      <property name="hibernate.connection.url" value="jdbc:mysql://----------?autoReconnect=true"/>
      <!--Connection Pooling c3p0 configuration-->
      <!--Minimum number of JDBC connections in the pool. Hibernate default: 1-->
      <property name="hibernate.c3p0.min_size" value="5"/>
      <!--Maximum number of JDBC connections in the pool. Hibernate default: 100-->
      <property name="hibernate.c3p0.max_size" value="20"/>
      <!--When an idle connection is removed from the pool (in second). Hibernate default: 0, never expire.-->
      <property name="hibernate.c3p0.timeout" value="300"/>
      <!--Number of prepared statements will be cached. Increase performance. Hibernate …
Run Code Online (Sandbox Code Playgroud)

authentication configuration catalina tomcat7

23
推荐指数
1
解决办法
6万
查看次数

在Tomcat 7中替换RequestDumperValve

Tomcat 7不支持Tomcat 6及更早版本可用的RequestDumperValve.

它在Tomcat 7中的推荐替代品是什么?

logging tomcat tomcat7

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

关闭tomcat时停止计划的计时器

我有一个部署到Tomcat服务器的WAR文件,其中一个类将在启动时调用,然后init()方法将安排一个计时器每5小时触发一次以执行某些任务.

我的init()代码如下所示:

public void init()
{
    TimerTask parserTimerTask = new TimerTask() {

        @Override
        public void run() {
            XmlParser.parsePage();
        }
    };

    Timer parserTimer = new Timer();
    parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD);
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序运行没有问题,但当我使用/etc/init.d/tomcat7停止关闭Tomcat时,我检查日志(catalina.out)它有一个这样的条目:

严重:Web应用程序[/ MyApplication]似乎已经启动了一个名为[Timer-0]的线程,但未能阻止它.这很可能造成内存泄漏.

我明白这是由我安排计时器引起的,但我的问题是:

  1. 我没有设置setDeamon为true,所以定时器不应该阻止Tomcat关闭,而不是继续运行?
  2. 我可以在我的应用程序中检测Tomcat是否会关闭并取消我的计时器?
  3. 我可以用什么其他解决方案来解决这个问题?

谢谢!

UPDATE

我根据一些搜索和DaveHowes的答案将我的代码更改为以下内容.

Timer parserTimer;
TimerTask parserTimerTask;

public void init()
{
    parserTimerTask = new TimerTask() {

        @Override
        public void run() {
            XmlParser.parsePage();
        }
    };

    parserTimer = new Timer();
    parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD);
}

@Override
public void contextDestroyed(ServletContextEvent arg0) {
    Logger logger …
Run Code Online (Sandbox Code Playgroud)

java tomcat java-ee tomcat7

22
推荐指数
1
解决办法
3万
查看次数

收到带签名的Ajp无效邮件

我正在使用Tomcat 7.0.29前面的Apache 2.2.22 modproxy.配置Ajp作为httpd.conf中的协议和server.xml中的AjpNioProtocol.服务器启动后,日志将填充以下消息:

严重:收到签名
20599 com.apache.coyote.ajp.AjpMessage processHeader的消息无效

没有请求发送到Web或tomcat服务器,它仍然会抛出该错误.tomcat和apache中的访问日志显示没有请求进入.导致无效消息错误的原因是什么?

这是配置:

apache2 mod-proxy proxypass tomcat7

22
推荐指数
2
解决办法
6万
查看次数

在我的项目中,我发现了这个异常org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException.怎么解决?

org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
    at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:372)
    at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:232)
    at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:188)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:113)
    at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
    at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1335)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromVariantTypeSignature(LookupEnvironment.java:1391)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeArgumentsFromSignature(LookupEnvironment.java:1172)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1340)
    at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:550)
    at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:630)
    at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:365)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:688)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:667)
    at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:296)
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:118)
    at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
    at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122)
    at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:168)
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.java:2379)
    at org.eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference.internalResolveLeafType(ParameterizedQualifiedTypeReference.java:138)
    at org.eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference.internalResolveType(ParameterizedQualifiedTypeReference.java:132)
    at org.eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference.resolveType(ParameterizedQualifiedTypeReference.java:351)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.java:1374)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.fields(SourceTypeBinding.java:699)
    at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:677)
    at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:469)
    at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:756)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:468)
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:459)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at …
Run Code Online (Sandbox Code Playgroud)

eclipse tomcat7

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

在Tomcat中重新部署应用程序时发生内存泄漏

我有部署在Tomcat 7.0.70中的WebApplication.我模拟了以下情况:

  1. 我创建了堆转储.
  2. 然后我发送了Http请求,并在服务的方法中打印了当前线程及其classLoader.然后我调用了Thread.currentThread.sleep(10000).
  3. 在同一时刻,我在Tomcat的管理页面中点击了"取消部署此应用程序".
  4. 我创建了新的堆转储.
  5. 几分钟后,我创建了新的肝转储.


结果


线程转储

在下面的屏幕上,您可以看到,在我单击"redeploy"之后,除了线程"http-apr-8081-exec-10"之外,所有线程(与此Web应用程序关联)都被终止.当我设置Tomcat的属性"renewThreadsWhenStoppingContext == true"时,你可以看到一段时间后这个线程("http-apr-8081-exec-10")被杀死并且新线程(http-apr-8081-exec-11) )而不是它.所以我没想到在创建堆转储3之后会有旧的WCL,因为没有任何旧的线程或对象.

在此输入图像描述

堆转储1

在以下两个屏幕上,您可以看到当应用程序运行时,只有一个WCL(其参数"started"= true).线程"http-apr-8081-exec-10"有contextClassLoader = URLClassLoader(因为它在Tomcat的池中).我只是谈论这个线程,因为你将能够看到这个线程将处理我未来的HTTP请求.

在此输入图像描述

在此输入图像描述

发送HTTP请求

现在我发送HTTP请求,并在我的代码中获取有关当前线程的信息.您可以看到我的请求由线程"http-apr-8081-exec-10"处理

??? 23, 2016 9:28:16 AM c.c.c.f.s.r.ReportGenerationServiceImpl INFO:  request has been handled in 
   thread = http-apr-8081-exec-10,  its contextClassLoader = WebappClassLoader
   context: /hdi
   delegate: false
   repositories:
   /WEB-INF/classes/
   ----------> Parent Classloader: java.net.URLClassLoader@4162ca06
Run Code Online (Sandbox Code Playgroud)

然后我单击"重新部署我的Web应用程序",我在控制台中收到以下消息.

 ??? 23, 2016 9:28:27 AM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
 SEVERE: The web application [/hdi] appears to have started a thread named [http-apr-8081-exec-10] but has failed to stop it. This is very likely …
Run Code Online (Sandbox Code Playgroud)

java multithreading tomcat jvisualvm tomcat7

22
推荐指数
2
解决办法
3477
查看次数

无法打开服务'Tomcat7'

嗨我通过Windows安装程序安装了Apache Tomcat 7.刚刚重新启动我的系统,我得到了错误

应用程序系统错误访问被拒绝.无法打开服务'Tomcat7'

apache tomcat7

21
推荐指数
2
解决办法
5万
查看次数

Mvn clean安装tomcat7:部署失败,"常量池中的无效字节标记"

每次我在命令提示符下运行mvn clean install tomcat7:deploy时,都会失败.当我打开生成的日志文件时,它表示常量池中存在无效的字节标记.它指定的文件是java/lang/CharSequence.class.

这是日志:

---- AspectJ Properties ---
AspectJ Compiler 1.6.9.RC3 built on Wednesday Jun 30, 2010 at 15:46:30 GMT
---- Dump Properties ---
Dump file: ajcore.20141116.131622.157.txt
Dump reason: org.aspectj.apache.bcel.classfile.ClassFormatException
Dump on exception: true
Dump at exit condition: abort
---- Exception Information ---
org.aspectj.apache.bcel.classfile.ClassFormatException: File: 'java/lang    /CharSequence.class': Invalid byte tag in constant pool: 15
at org.aspectj.apache.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:192)
at org.aspectj.apache.bcel.classfile.ClassParser.parse(ClassParser.java:131)
at org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass(BcelWorld.java:412)
at org.aspectj.weaver.bcel.BcelWorld.resolveDelegate(BcelWorld.java:373)
at org.aspectj.weaver.World.resolveToReferenceType(World.java:452)
at org.aspectj.weaver.World.resolve(World.java:298)
at org.aspectj.weaver.World.resolve(World.java:211)
at org.aspectj.weaver.bcel.BcelGenericSignatureToTypeXConverter.classTypeSignature2TypeX(BcelGenericSignatureToTypeXConverter.java:95)
at org.aspectj.weaver.bcel.BcelGenericSignatureToTypeXConverter.classTypeSignature2TypeX(BcelGenericSignatureToTypeXConverter.java:41)
at org.aspectj.weaver.bcel.BcelObjectType.ensureGenericSignatureUnpacked(BcelObjectType.java:807)
at org.aspectj.weaver.bcel.BcelObjectType.getDeclaredInterfaces(BcelObjectType.java:255)
at org.aspectj.weaver.ReferenceType.getDeclaredInterfaces(ReferenceType.java:625)
at …
Run Code Online (Sandbox Code Playgroud)

maven tomcat7 aspectj-maven-plugin

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