我有一个项目,我一直在Eclipse Ganymede上构建,目标是tomcat 6.0,我已将它导入Europa,我需要它在apache Tomcat 5.5上运行 我找不到运行时设置为6.0的位置的引用来删除它。 我试过去Windows> preferences> Server,我已经安装了5.5运行时。 但是我似乎无法找到运行6.0的引用去除它。 任何帮助,将不胜感激。 更新: 我无法在我的构建路径中找到对Tomcat v6.0的任何引用,但是有一个对tomcat 5.5的servlet-api.jar的引用虽然…
我的最新项目能够使用数据库中的信息生成文档。 因此,我将文档模板按需复制到用户的临时文件夹并进行修改。 我这样做是因为每个模板在修改期间都必须可用。 之后,用户通过我的webapp下载链接获得他的文档。 我的问题:存储webapp数据是否有最佳实践? 我觉得温度会很好。 但是因为我必须自己删除数据,所以我想把它放在tomcat webapp文件夹中的WAR文件夹旁边。 我使用Windows 2003作为Tomcat的主机系统。 我为我的项目使用Grails,Java和Maven ……不知道是否需要这些信息。 编辑: 我提出这个微不足道的问题的主要原因是……如果我负责创建/删除我的临时数据……在系统上使用临时文件夹仍然是一个好习惯吗? 我不确定这个……
我将有3个Tomcat服务器和一个负载均衡器,可以在不使用“ 粘性会话 ”的情况下调度请求。 我想在服务器之间共享会话数据,我正在考虑将它们保存在数据库中。 我想在我的数据库前面使用memcached作为一个层来更快地提供请求,并且不要让我的数据库负载很重 。 我正在考虑提供我的自定义tomcat管理器,它在获取/持久化会话数据到DB之前使用memcached,因为我没有看到这样做的透明方式(这意味着我将不得不再次管理它)我切换到另一个应用程序服务器)。 这是一个很好的解决方案还是你看到了更好的方法?
我脑子里有一点怀疑; 任何人都可以澄清我是Tomcat Web服务器还是Web容器?
看起来像 MemoryError: PermGen space java.lang.OutOfMemoryError: PermGen space 是一个常见的问题。 您可以增加烫发空间的大小,但在100或200次重新部署后,它将是满的。 跟踪ClassLoader内存泄漏几乎是不可能的。 你在生产服务器上使用Tomcat(或另一个简单的servlet容器 – Jetty?)的方法是什么? 每次部署解决方案后服务器是否重启? 您是否在许多应用程序中使用一个Tomcat? 也许我应该在不同的端口(或嵌入式Jetty)上使用许多Jetty服务器,并且每次都取消部署/重启/部署?
我正在构建一个相对简单的Web应用程序,其中主servlet实现ServletContextListener接口以确定上下文是已启动还是已停止。 我已经实现了我的contextInitialized , contextDestroyed , init和destroy方法( init和destroy都在基类上调用super )。 我目前没有实现任何真正的function,除了我已经在contextInitialized方法中初始化log4j,我加载了log4j.properties文件。 然而,当我从Eclipse中启动和停止Tomcat服务器时,所有内容都以正确的顺序调用(我正在使用一些System.out.println来测试它)但是在停止服务器大约10秒后我就出现了使用Eclipse弹出窗口说明以下内容: localhost上的服务器Tomcat v6.0服务器没有响应。 你想终止这台服务器吗? 单击“确定”终止服务器,或单击“取消”继续等待。 这是我停止服务器时在Eclipse控制台中打印的内容: 04/01/2010 7:39:13 PM org.apache.catalina.core.StandardService stop 信息:停止服务Catalina contextDestroyed 04/01/2010 7:39:13 PM org.apache.coyote.http11.Http11Protocol destroy 信息:在http-8080上停止Coyote HTTP / 1.1 在最后一条INFO消息之后,它会挂起,直到出现弹出窗口。 如果我选择等待,请按取消,Eclipse变得无法使用,我必须从终端中删除Eclipse进程。 任何关于如何解决这个问题的意见将不胜感激。 更新: 问题是由我在init方法中启动的非守护程序线程引起的(忘了提到:)。 通过使用stop方法显式停止线程解决了该问题,即使该方法似乎已被弃用。
在Eclipse中,我的build.xml有5个警告: taskdef class.org.apache.catalina.ant.InstallTask cannot be found taskdef class.org.apache.catalina.ant.ListTaskcannot be found taskdef class.org.apache.catalina.ant.ReloadTaskcannot be found taskdef class.org.apache.catalina.ant.StartTask cannot be found taskdef class.org.apache.catalina.ant.StopTask cannot be found 我已经设置了以下系统环境变量(Windows 7) ANT_HOME: C:\apache-ant-1.8.4 CATALINA_HOME: C:\apache-tomcat-7.0.29 JAVA_HOME: C:\Program Files\Java\jdk1.6.0_34 and have added %ANT_HOME%/bin to PATH 编辑:我还将catalina-ant.jar添加到C:\ apache-ant-1.8.4 \ lib中 代码的更多部分: 怎么了?
我有一个我在tomcat中部署的应用程序。 后来我将代码配置为Eclipse中的项目。 我想通过eclipse连接到tomcat并调试应用程序。 尝试设置远程调试连接会导致错误。 我需要在tomcat中添加任何条目吗?
在我的web.xml中,我为某些资源定义了用户数据约束: Personal Area /personal/* User Area /user/* CONFIDENTIAL 当我用http加载页面时,我的cookie中有我的JSESSIONID ID1。 当我更改为context / user / sample.faces时,Tomcat会将302重定向到HTTPS。 但是我的JSESSIONID仍然是ID1。 我认为这是一个漏洞? 或者是我的配置错误? 我看到的问题如下:在使用cookie ID1浏览HTTP时,有一个攻击者正在侦听我的网络流量。 他“窃取”我的cookie ID1。 现在我切换到HTTPS,我的cookie仍然是ID1。 我登录 然后攻击者能够接管我的会话,因为他知道我的cookie …
我负责开发和维护一组以类似数据为中心的Web应用程序。 我当时决定的架构是每个应用程序都有自己的数据库和Web-root应用程序。 每个应用程序都维护一个连接池到它自己的数据库和一个用于共享数据的中央数据库(登录等) 一位同事一直认为这个策略不会扩展,因为有这么多不同的连接池不可扩展,我们应该重构数据库,以便所有不同的应用程序使用单个中央数据库,并且可能是任何修改系统特有的将需要从该数据库反映出来,然后使用由Tomcat提供支持的单个池。 他假定有很多“元数据”在网络中来回传递,以维护连接池。 我的理解是,通过适当的调整,在不同的池中使用尽可能多的连接(低容量应用程序获得更少的连接,大量应用程序获得更多,等等), 池的数量与数量相比无关紧要。 连接或更正式地说,与1个30个连接池相比,维护3个10个连接池所需的开销差异可以忽略不计。 最初将系统分解为一个应用程序一个数据库设计的原因是,应用程序之间可能存在差异,并且每个系统都可以根据需要对架构进行修改。 同样,它消除了系统数据流入其他应用程序的可能性。 不幸的是,公司没有强有力的领导作出艰难的决定。 虽然我的同事只是模糊地支持他的担忧,但我想确保理解多个小型数据库/连接与一个大型数据库/连接池的分支。