我正在使用Memcached会话pipe理器以非粘滞模式处理Tomcat会话。 我在Azure中的部署由一个工作者angular色组成,两个实例连接到运行我的Memcached服务器的Azure虚拟机。 一切工作都很好,我的会话被持久化,并透明地检索两个实例中的任何一个。 当会话闲置约4分钟时出现问题; 所有的事情都指出Azure负载平衡器在一段时间不活动之后closures到虚拟机的间谍caching连接。 我的MSMconfiguration是这样的: <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:my-azure-vm.cloudapp.net:11211" sticky="false" sessionBackupAsync="false" sessionBackupTimeout="10000" lockingMode="uriPattern:/path1|/path2" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js|ttf|eot|svg|woff)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" customConverter="de.javakaffee.web.msm.serializer.kryo.HibernateCollectionsSerializerFactory"/> 由spymemcached客户端打印的stacktrace是这样的: INFO net.spy.memcached.MemcachedConnection: Reconnecting due to exception on {QA sa=/10.194.132.206:13000, #Rops=1, #Wops=0, #iq=0, topRop=net.spy.memcached.protocol.binary.StoreOperationImpl@1d95da8, topWop=null, toWrite=0, interested=1} java.io.IOException: An existing connection was forcibly closed by the remote host at sun.nio.ch.SocketDispatcher.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(Unknown Source) at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) at sun.nio.ch.IOUtil.read(Unknown […]
当我尝试启动我的应用程序时,我得到这个错误。 我已经validation了JarScanner存在于CATALINA_HOME目录中,所以我不知道为什么找不到它。 有什么可能导致这个问题开始我的应用程序? 我注意到,在同一个日志中,我发现这一点: [Loaded org.apache.tomcat.JarScanner from file:/usr/local/apache-tomcat-7.0.30/lib/tomcat-api.jar] 下面是实际的错误: Oct 8, 2012 1:24:01 PM org.apache.catalina.core.ContainerBase addChildInternal SEVERE: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/client]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.NoClassDefFoundError: org/apache/tomcat/JarScanner at java.lang.ClassLoader.defineClass1(Native […]
我需要用户在Apache HTTP中对一些静态资源进行身份validation(使用mod_auth_openid) ,我也有一个Tomcat应用程序在运行,我如何接受HTTP用户作为Tomcat用户,这样用户不需要login两次? 澄清 :我不想在Tomcat方面重新检查凭据,但基本上相信已被Apache HTTP识别的用户是正确的(无论身份validation发生的方式 – 哪个是主要观点:移交用户名/密码是* *没有*选项,因为可能没有密码,实际上最有可能不会)。 我想要这个与Tomcat身份validation系统一起工作,但是一些指针如何与本地身份validation一起工作不会造成任何损害。
我已经在Apache前端和多个Tomcat后端之间build立了一个反向代理。 以下代码块包含ProxyHTMLURLMap参数,以便可以重写HTML以除去Tomcat上下文path。 使用这个设置,login到我的应用程序后,初始的JSESSIONID设置正确,但是当浏览到任何其他页面时,这个JSESSIONID会丢失,另一个由应用程序设置。 我应该提到,初始login指向包含当前上下文path(即https://app.domain.com/context/home )的URL,但是当导航到另一个页面时,该上下文path不存在于URL中(即https://app.domain.com/page2 )。 <Proxy balancer://happcluster> BalancerMember ajp://happ01.hscom:8009 route=worker1 loadfactor=10 timeout=15 retry=5 BalancerMember ajp://happ02.hscom:8009 route=worker2 loadfactor=10 timeout=15 retry=5 BalancerMember ajp://happ03.hscom:8009 route=worker3 loadfactor=5 timeout=15 retry=5 BalancerMember ajp://happ04.hscom:8009 route=worker4 loadfactor=5 timeout=15 retry=5 BalancerMember ajp://happ05.hscom:8009 route=worker5 loadfactor=5 timeout=15 retry=5 ProxySet lbmethod=bytraffic ProxySet stickysession=JSESSIONID </Proxy> ProxyPass /context balancer://happcluster/context ProxyPass / balancer://happcluster/context/ <Location /context/> # Rewrite HTTP headers […]
我正在为我正在使用的团队设置一个开发服务器。 他们开发JavaEE应用程序,这些应用程序被部署并作为WAR文件运行。 他们将不可避免地需要在这台服务器上不断运行一两个应用程序。 还有一些其他的Java应用程序也需要在服务器上运行,包括Jenkins,Artifactory和其他一些作为WAR部署的内部工具。 Jenkins和Artifactory默认运行在自己的servlet容器中,以这种方式设置它们非常简单。 但是在我看来,通过让所有WAR在Tomcat的一个实例中运行,可能会节省一些内存和性能,而不是为Jenkins运行Winstone,为Artifactory运行Jetty,为Tomcat运行内部工具。 我们是否可以看到使用单个servlet容器带来的重大好处?
我在Mac中第一次使用XAMPP。 用尽访问根文件夹(htdocs)以外的问题。当我把我的web应用程序放在htdocs里面时,默认的httpd.conf文件有效,当我尝试将我的web应用程序url指向httpd.conf时,它会抛出错误 我知道要修改根文件夹,我需要更改我的XAMPP / etc / httpd.conf文件 使用默认的XAMPP MAC设置,我试图在XAMPP / etc / httpd.conf文件中更改服务器根目录,文档根目录和目录 ServerRoot "/Users/ravi/Documents/Development/Backbone/backboneboilerplate" DocumentRoot "/Users/ravi/Documents/Development/Backbone/backboneboilerplate" <Directory /> Options FollowSymLinks AllowOverride All Order deny,allow Deny from all </Directory> <Directory "/Users/ravi/Documents/Development/Backbone/backboneboilerplate"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> 它试图启动XAMPP时抛出错误 httpd:/Applications/XAMPP/xamppfiles/etc/httpd.conf中第54行的语法错误:无法将/Users/ravi/Documents/Development/Backbone/backboneboilerplate/modules/mod_authn_file.so加载到服务器中:无法创build目标文件映像或添加库
我正在Ubuntu 12.04 LTS / 32位的networking上运行一个虚拟服务器 。 在干净安装JRE 7和Tomcat 7之后 ,按照http://www.sysadminslife.com上的说明,我没有让Tomcat 7正常运行。 > java -version java version "1.7.0_09" Java(TM) SE Runtime Environment (build 1.7.0_09-b05) Java HotSpot(TM) Client VM (build 23.5-b02, mixed mode) > /etc/init.d/tomcat start Starting Tomcat Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/lib/jvm/java-7-oracle Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar > telnet localhost 8080 […]
你好,这应该是相当容易回答任何系统pipe理员,问题是,我不是服务器pipe理员,但我必须完成这项任务,我非常接近,但仍然没有设法做到这一点。 这是我的意思,我有两个tomcat实例在machine1和machine2上运行。 人们通常通过访问url访问这些网站: http://machine1:8080/appName http://machine2:9090/appName 问题是当我设置nginx的域名,即domain.com ,nginx发送请求到http://machine1:8080/和http://machine2:9090/而不是http://machine1:8080/和http://machine2:9090/appName 这是我的configuration(非常基本,因为它可以指出): upstream backend { server machine1:8080; server machine2:9090; } server { listen 80; server_name www.mydomain.com mydomain.com; location / { # needed to forward user's IP address to rails proxy_set_header X-Real-IP $remote_addr; # needed for HTTPS proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_max_temp_file_size 0; proxy_pass http://backend; } […]
JBoss AS7 mod_proxy或mod_cluster 让我开始一个JBoss AS7服务器集群。 我发现可以用mod_proxy或者mod_cluster使用apache。 你可以用哪个? 哪个更容易确定和维护? 哪个提供更好的性能?
我有一个需要设置LD_LIBRARY_PATH的Tomcat webapp。 我正在使用RHEL6和Tomcat6(来自yum包pipe理器),webapp被称为adore-djatoka 。 我使用提供的脚本启动tomcat,导出一些环境variables,但似乎LD_LIBRARY_PATH未被设置,我认为这是一个安全function,因为init脚本是由用户“ root ”运行的,但是tomcat正在运行作为“ tomcat ”。 当我重新启动tomcat,我看到日志文件“ djatoka.log ”中的以下行: 2013-01-04/10:25:04.118/EST [main] DEBUG envParams: LD_LIBRARY_PATH=null | null/kdu_compress 我读的是告诉我应用程序期望LD_LIBRARY_PATH被设置,但是发现它是空的,因此它会在null/目录中查找kdu_compress 。 我已经用echo散布启动脚本,所以我可以看到LD_LIBRARY_PATH正在被设置和导出,所以我假设它一定是未设置的。 有一些与webapp绑定的脚本来testing它的安装是否正确,并且它们在命令行中运行良好,但是它们很短,只是导出环境variables(包括LD_LIBRARY_PATH )并调用java。 我试过添加 LD_LIBRARY_PATH="/opt/adore-djatoka-1.1/lib/Linux-x86-64" export LD_LIBRARY_PATH 到/usr/share/tomcat6/bin/setenv.sh 我试过添加 LD_LIBRARY_PATH="/opt/adore-djatoka-1.1/lib/Linux-x86-64" 到`/etc/tomcat6/tomcat6.conf LD_LIBRARY_PATH已经在启动脚本中导出,它继续调用/etc/init.d/tomcat6 [start/stop/restart] 对于这里的一些主题,我很新,所以如何更好地了解下一步的位置或者哪些信息对于发布有用的指导也是值得赞赏的。 我已经读过“为什么LD_LIBRARY_PATH不好” 所以我的问题是如何启动tomcat,以便它不会将LD_LIBRARY_PATH设置为空? 或者如何将它设置为空后重新设置为我想要的? 或者我怎样才能阻止Web应用程序依赖它呢? 干杯,