似乎一些servlet容器在请求之间重用HttpServletRequest (或更一般地, ServletRequest )实例。 题: 有人可以指向 servlet规范中定义了这种行为(或引用此类实例的有效性规则)吗?
我仍然在tomcat/logs/catalina.out看到此错误。 Dec 29, 2011 4:04:36 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/LoggingMonitor] appears to have started a thread named [Timer-1] but has failed to stop it. This is very likely to create a memory leak. Dec 29, 2011 4:04:36 PM org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping Coyote HTTP/1.1 on http-8180 是否值得考虑,如果是,我该如何纠正?
我得到了这个例外: java.lang.ClassCastException: org.apache.tomcat.jdbc.pool.DataSource cannot be cast to javax.sql.ConnectionPoolDataSource 当我尝试运行我的webapp(在Tomcat6中)时,使用与Tomcat7无缝协作的tomcat jdbc池 我已经在tomcat 6 lib文件夹中包含了这些jar: tomcat-jdbc.jar tomcat-juli.jar 可能是什么问题呢? 更新: protected static Connection getConnection() throws NamingException, SQLException { InitialContext cxt = new InitialContext(); String jndiName = “java:/comp/env/jdbc/MyDBHrd”; ConnectionPoolDataSource dataSource = (ConnectionPoolDataSource) cxt.lookup(jndiName); // ClassCastException here…. PooledConnection pooledConnection = dataSource.getPooledConnection(); Connection conn = pooledConnection.getConnection(); return conn; // Obtain connection […]
有没有办法在tomcat中为不同的war文件设置不同的环境变量? 我正在使用第三方战争,并且需要对同一战争进行多次部署,但需要使用不同的环境变量(因此它会加载不同的配置)。
这是我的pom.xml构建配置: cfwd maven-compiler-plugin 2.3.2 1.6 1.6 org.apache.tomcat.maven tomcat7-maven-plugin 2.0 http://xx.xxx.xxx.xxx:8080/manager/text cifServer /cfwd true true 其中http://xx.xxx.xxx.xxx:8080是远程服务器IP。 当我尝试通过mvn tomcat:deploy我收到此错误: [错误]无法在项目cfwd上执行目标org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy(default-cli):无法调用Tomcat管理器:服务器返回HTTP响应代码:403 for URL: http://localhost:8080/manager/deploy?path=%2Fcfwd&war= – > [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException:无法执行目标org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy(默认-cli)关于项目cfwd:无法调用Tomcat管理器 它看起来像maven试图部署到localhost:8080而不是远程服务器IP。 任何想法?
我正在尝试调试部署在Tomcat上的应用程序提供的一些慢响应。 现在我专注于SecureRandom和/dev/random (其他一些可能的原因已被调查并排除)。 模式如下: Tomcat重新启动后第一次调用需要30.0 xy秒(即使请求在启动后4分钟到达) 之后,一些调用只需要15.0 pq秒(没有我可以建立的特定模式, pq是TP99中所用的时间近似时间) 服务调用涉及加密和解密( AES / ECB / PKCS5Padding )。 SecureRandom init / repopulating是否可能导致这种情况发生? (尽管有一个用catalina.log编写的日志说”Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [28,760] milliseconds.” ) 另外,为了检查是否正在使用/dev/random或/dev/urandom ,我使用了这个问题的测试。 令我惊讶的是,我没有看到其中任何一个的读取,不像它在链接问题中发生的那样。 这些是strace日志中的最后几行: 3561 lstat(“/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/jsse.jar”, {st_mode=S_IFREG|0644, st_size=258525, …}) = 0 3561 open(“/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/jsse.jar”, O_RDONLY) = 6 3561 stat(“/dev/random”, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 8), […]
通常我从jar文件中读取资源如下: getClassLoader().getResource(pTextPath + “/” + pLang +”.xml”); 我需要从jar文件中的已知文件夹中读取具有特定名称的所有资源。 例如,读取* .xml 插件/资源/文 我可以根据路径和名称模板以某种方式从jar文件列表中获取资源吗? 更新:完全重复从类路径目录获取资源列表请关闭问题。
我正在为我的compojure web应用程序寻找一个好的生产Web服务器/ servlet容器。 使用compojure将Jetty或Tomcat或其他服务器用于Clojure Web应用程序的优缺点是什么? 使用带有Clojure的Web服务器进行生产或工具是否有任何好的文档? 我更喜欢一个灵活,易于配置的Web服务器,并且具有关于如何配置和使用它的良好文档。
在过去的几周里,我一直在寻找在两个上下文/战争文件之间共享对象的解决方案。 有很多种方法可以做,其中一种是JNDI。 我对Tomcat中使用的JNDI不太熟悉,所以想澄清一些问题: 基本上我有一个对象的实例,它将为多个上下文/应用程序提供以下服务 检查用户是否已登录 检查用户的会话是否有效 登录用户 – 包括记录登录详细信息 注销用户 – 删除会话 每个应用程序将在处理任何请求之前调用此对象以validation用户。 我不明白的是如果对象存储在JNDI上,该对象将如何工作。 我已经看到了一些如何在Tomcat中使用JNDI的示例,但99%的示例显示了如何配置JDBC数据源。 对象在JNDI中的确切初始化程度。 例如,Tomcat文档中的以下配置显示了JDBC的配置 在我的情况下,我将如何做类似的事情,最重要的是,如何在将对象放入JNDI树之前初始化该对象。 一旦它在JNDI树上,它是如何更新的? 我想我想要的是在Tomcat中使用JNDI的简单示例,但不是数据库连接,而是服务提供者类型对象。 我一直在阅读本教程http://docs.oracle.com/javase/tutorial/jndi/ops/bind.html,但它更侧重于LDAP命名目录,这并没有真正帮助。 编辑 好的,我确实在上面列出的教程中找到了一个示例,它显示了如何将对象“绑定”到JNDI树中。 class SerObj { public static void main(String[] args) { // Set up environment for creating initial context Hashtable env = new Hashtable(11); env.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.jndi.ldap.LdapCtxFactory”); env.put(Context.PROVIDER_URL, “ldap://localhost:389/o=JNDITutorial”); try { // Create the initial […]
我们正在运行一个Web应用程序,用户数量很少,大约7个,但显示图像的负载很高。 最近我们升级到Java 6u43和Tomcat 6.036,经过一些使用(大约一周)tomcat服务崩溃。 重启后,它可以运行几天,或者只是几个小时,然后再次崩溃。 即使重新启动服务器后它再次崩溃,我们甚至看到它在活动10分钟后。 它总是在tomcat的bin文件夹中的hs_err_pid文件中使用相同的消息。 请参阅下面的完整错误消息示例。 本机内存总是不足,主活动线程始终是JavaThread“C2 CompilerThread1”,但始终采用不同的方法。 我们运行的是Windows 2008 Service Pack 2,32位,2个CPU,3GB。 对于tomcat xms设置为512KB和xmx到1536KB。 没有其他具体设置。 当它崩溃时,Java堆远远低于1536的完全使用率。 任何想法,建议这可能是什么? (在tomcat升级之前我们使用tomcat 6.014和Java 6u02很长一段时间没有任何问题) # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 629784 bytes for Chunk::new # Possible reasons: # The system is […]