Articles of tomcat

axis2 webapp后面的反向代理产生错误的位置

Java / Tomcat中的SSLconfiguration就是这样,我configuration了一个tomcat6实例,以获取来自处理SSL的nginx反向代理的请求,代理到localhost:8080的连接。 像X-Forwarded-For一样添加标头可确保端点显示正确的地址,但不能使用正确的协议。 一个客户端(在我的情况下是python-suds)很好地检索WSDL,但是为SOAP端口find以下位置: <wsdl:service name="WebService"> <wsdl:port name="WebServiceHttpSoap11Endpoint" binding="ns:WebServiceSoap11Binding"> <soap:address location="http://10.10.3.96/axis2/services/WebService.WebServiceHttpSoap11Endpoint/"/> </wsdl:port> <wsdl:port name="WebServiceHttpSoap12Endpoint" binding="ns:WebServiceSoap12Binding"> <soap12:address location="http://10.10.3.96/axis2/services/WebService.WebServiceHttpSoap12Endpoint/"/> </wsdl:port> <wsdl:port name="WebServiceHttpEndpoint" binding="ns:WebServiceHttpBinding"> <http:address location="http://10.10.3.96/axis2/services/WebService.WebServiceHttpEndpoint/"/> </wsdl:port> </wsdl:service> 我怀疑它的http://抛出它,因为试图使用这个结果在tomcat的日志中的错误和以下消息: org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /axis2/services/WebService.WebServiceHttpSoap11Endpoint/ and the WSA Action = null. If this EPR was previously reachable, please contact the server […]

Linux上的Tomcat webappconfiguration

我有一个webapp(基于springmvc 3.0.5 / java 1.6),我正在部署到Linux机器上的tomcat(6.0.32)Web服务器。 目前我将war文件复制到服务器上,让tomcat为我解压。 server.xml中的相关行: <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context docBase="fooapp" path="/" reloadable="true" source="org.eclipse.jst.jee.server:Fooapp"/> </Host> 我希望webapp上下文path是“/”,所以我不必为每个url添加/ fooapp /。 http://www.mydomain.com/index.html而不是http://www.mydomain.com/fooapp/index.html 问题是,在我目前的configuration中,webapp是从“/”和“/ fooapp”上下文path服务的,因为tomcat解包了两次战争。 一次到fooapp目录,另一次到ROOT目录。 我希望Web应用程序只被解压到fooapp目录,并仍然从“/”上下文path提供服务。 这可以在Linux上完成,如果是的话如何? 注意:这在Windows上完全符合我的要求,所以我希望Linux可以做同样的事情。

Tomcat的maxSavePostSize值?

Tomcat错误403 the request body was too large to be cashed during authentication process 其相关的maxSavePostSize设置其当前的默认值是4096(4KB)。 在谷歌search的人build议-1(无限制)。 这是否意味着它可能是DOS攻击的主题? 你build议什么?

Tomcat进程在交换空间不足后被Linux内核杀死; 不要得到任何JVM OutOfMemory错误

我正在对tomcat服务器进行负载testing。 服务器有10G物理内存和2G交换空间。 堆大小(xms和xmx)之前被设置为3G,并且服务器工作正常。 由于我仍然看到很多空闲的内存,性能不佳,我将堆大小增加到7G,然后再次进行负载testing。 这次我观察到物理内存很快就被吃掉了,系统开始消耗交换空间。 后来,tomcat在用完swap之后崩溃了。 我在启动tomcat时包含了-XX:+HeapDumpOnOutOfMemoryError ,但是我没有得到任何堆转储。 当我检查/var/log/messages ,我看到kernel: Out of memory: Kill process 2259 (java) score 634 or sacrifice child 。 为了提供更多的信息,这里是我从Linux top看到的命令,当堆大小设置为3G和7G xms&xmx = 3G(工作正常): 在启动tomcat之前: Mem: 10129972k total, 1135388k used, 8994584k free, 19832k buffers Swap: 2097144k total, 0k used, 2097144k free, 56008k cached 启动tomcat之后: Mem: 10129972k total, 3468208k used, 6661764k free, […]

Window 2008 Tomcat 7 MS SQL Server 2008 R2 – 无法识别JNDI JDBC驱动程序

首先我必须说,我已经find了这个问题,我find了几个答案,没有为我工作。 Tomcat 7在JDK 1.7.0.10的Windows 2008 x64上作为服务运行。 我正在尝试使用JDBC连接池,我已经在Windows 7 x86上成功运行Tomcat 6.0.36(不作为服务安装)。 configuration很简单: 1。 将sqljdbc4.jar复制到%CATALINA_HOME%\ lib目录中。 2 – 。 编辑%CATALINA_HOME%\ webapps \ APP_NAME \ META-INF \ context.xml: <?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/APP_NAME"> <Resource name="jdbc/poolConexiones" auth="Container" driverclassname="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxactive="100" maxidle="30" maxwait="10000" username="user" password="pass" type="javax.sql.DataSource" url="jdbc:sqlserver://localhost:1433;databaseName=Name"> </Resource> </Context> 3-。 编辑web.xml: <resource-ref> <res-ref-name>jdbc/poolConexiones</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> 它工作正常! 但是,当我试图运行相同的应用程序 a)作为服务安装的w2008 […]

java.net.socketexception权限被拒绝 – 服务器窒息

我们最近开始在生产服务器上遇到问题,应用程序在一段时间内突然开始失败所有出站请求(调用公共API /本地数据库),然后再次请求开始成功完成,然后又过了一​​段时间失败。 每次我重新启动Tomcat的问题消失了一段时间,然后再次出现,每重新启动tomcat的问题开始出现在较less的时间,直到我必须重新启动整个服务器,以确保一个漫长的稳定期。 我查看了所有通过stackoverflow和谷歌search结果,而不是build议的解决scheme之一或调查path导致我解决这个问题。 我的服务器设置是: – Windows Server 2008 R2 – Tomcat 7.0.59 – JRE 7 我已经使用“netstat -ano”build议在stackoverflow.com上的答案 – 我缺less的参考,对此感到遗憾 – 检查我的应用程序是否泄漏连接,我寻找CLOSE_WAIT状态连接,似乎没有泄漏,具有CLOSE_WAIT状态的连接不会长时间生存,大部分时间是0,最多1或2。 我已经成功设置了preferIPv4Stack java选项setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true ,但是没有成功。 无论如何,我猜它与它无关,因为如果是的话,我的服务器将无法发送任何成功的请求,对吗? 在我的情况下,在Tomcat重新启动后,服务器成功发送请求x个小时,然后随机启动失败,直到所有请求都失败。 有人能指出我在调查这个问题的方向吗? 我应该找什么? 任何帮助表示赞赏。 编辑: 日志: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://MYURL.COM": Permission denied: connect; nested exception is java.net.SocketException: Permission denied: connect at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:524) ~[spring-web-3.2.8.RELEASE.jar:3.2.8.RELEASE] […]

打印在Linux上,但不在Windows上

我正在开发一个Web应用程序打印一个PDF文件(从ByteArrayOutputStream)。 这里是代码: PrintService service = null; for (String printer : listPrinters){ for( PrintService printService : printServices ) { Attribute[] attrs = printService.getAttributes().toArray(); for (int j=0; j<attrs.length; j++) { String attrName = attrs[j].getName(); String attrValue = attrs[j].toString(); if (attrName.equals("printer-name")){ if (attrValue.equals(printer)){ service = printService; } } } } } try { InputStream fi = new ByteArrayInputStream(baos.toByteArray()); […]

访问被拒绝。 无法打开服务“Tomcat5”

我不确定这里发生了什么事。 我在Windows2008服务器上安装了Tomcat5.5.26。 服务工作正常,并自动启动。 但是,当我login系统时,出现一个对话框,提示“Access is denied。Unable to open the service'Tomcat5'。服务没有问题(afaik),我可以通过services.msc事实上,我已经validation了我可以更改服务的login凭据及其启动types。 我试着searchWindows事件日志中的这个错误,但找不到它。 任何想法为什么它popup? 我login的帐户具有pipe理员权限,但有趣的是当我尝试运行Tomcat5w.exe时,除非我明确地右键单击并select“以pipe理员身份运行”,我无法打开它。

如何在Windows下使用特定的PATH安装tomcat?

我有以下代码: tomcat5.exe //IS//%SERVICE_NAME% –StartPath "%BASE_DIR%\bin" –Jvm "%JAVA_HOME%\bin\%JAVA_MODE%\jvm.dll" –StartClass org.apache.catalina.startup.Bootstrap –StopClass org.apache.catalina.startup.Bootstrap –StartParams "-config;%CONFIG%;start" –StopParams stop –Startup auto tomcat5.exe //US//%SERVICE_NAME% –JvmOptions "-Dcatalina.base=%CATALINA_BASE%#-Dcatalina.home=%CATALINA_HOME%#-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed#-Xrs#-Djava.library.path=%DLL_DIR%#-DimageservicePath=%imageservicePath%" –StartMode jvm –StopMode jvm tomcat5.exe //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" tomcat5.exe //US//%SERVICE_NAME% –JvmMx %MEMORY% –JvmMs %MIN_MEMORY% tomcat5.exe //US//%SERVICE_NAME% –Environment "PATH=.\;c:\path\bin" 我需要指定一个特殊的PATH,因为一些本地代码加载问题。 我的问题是,服务安装程序将改变提供PATH: http : //tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html – 环境 将以key = valueforms提供给服务的环境variables列表。 他们使用#或者分开; 人物 我需要指定一个两个位置的窗口path: PATH=.;c:\path\binpath将存储在registry中: PATH=. c:\path\bin […]

使用80端口的多个tomcat实例

我有三个不同的应用程序的三个tomcat实例。 他们在一台机器上使用8080,8081,8082个端口。 如何更改configuration,使用户能够从80端口访问不同的主机名? 我在我的机器上安装了一个Apache,并尝试使用以下教程进行configuration: 如何在Windows上使用Apache平衡Tomcat 5.5,直到启动负载平衡点。 我有基于这个教程的问题。 我的web应用程序在所有tomcat实例的webapps / ROOT下。 我在httpd.conf有这个configuration: <IfModule jk_module> JkWorkersFile D:\containters\_tomcat_backend\conf\workers.properties JkShmFile D:\containters\_tomcat_backend\logs\mod_jk.shm JkLogFile D:\containters\_tomcat_backend\logs\mod_jk.log JkLogLevel debug JkMount / worker1 JkMount / worker2 </IfModule> 当我从命令提示符运行httpd.exe时,我得到了这个警告: [警告] NameVirtualHost *:80没有VirtualHosts 我正确的方式使我的应用程序与80端口工作? 我怎样才能configuration这个警告?