Tag: tomcat

当客户端关闭连接时,Spring StreamingResponseBody请求线程未清除

我在Controller中有一个端点,它返回StreamingResponseBody ,用于将文件发送到客户端。 这个代码大致如下: @RestController @RequestMapping(value=”api”) public class Controller { static class GetContentResponse implements StreamingResponseBody { @Override public void writeTo(OutputStream outputStream) throws IOException { while (!finished) { try { byte[] chunk = ; outputStream.write(chunk); } catch (InterruptedException e) { throw new RuntimeException(“Interrupted!”, e); } } outputStream.close(); } } @RequestMapping(value = “/{id}”, method = RequestMethod.GET) public ResponseEntity […]

Eclipse:错误启动静态资源java.lang.IllegalArgumentException

我的Eclipse IDE中有一个名为myproject2的项目。 我有一个Tomcat应用程序服务器,我可以在那里添加资源myproject2(它是一个Spring MVC项目)。 现在我关闭了Eclipse中的myproject2,从Tomcat资源中删除了myproject2并使用projectname:myproject3进行了新的Subversion结帐。 重新启动IDE我想将myproject3设置为Tomcat服务器,因此应该部署它。 但所有可用的是myproject2可供选择。 所以我选择它。 我可以访问http:// localhost:8080 / myproject2 /但是我收到此警告并在控制台中提供: 14.12.2010 11:43:11 org.apache.catalina.startup.HostConfig deployDescriptor WARNING: A docBase C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject2 inside the host appBase has been specified, and will be ignored 14.12.2010 11:43:11 org.apache.catalina.core.StandardContext resourcesStart SERVE: Error starting static Resources java.lang.IllegalArgumentException: Document base C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject3 does not exist or is not a readable directory at […]

在Java 32位和Java 64位之间切换

我刚刚发现,如果我使用的是64位JDK,那么Apache Tomcat无法作为Windows服务运行。 因此我在Windows上另外安装了Java 32位。 问题是当我使用java -version检查java版本时,它仍然显示64位仍在运行。 你如何从64位切换到32位? 能够稍后切换回64位也是很好的。

Java Quartz Memory泄漏消息

我的Web应用程序中有一个石英作业,由servlet启动。 当我重新部署我的应用程序时,我得到以下消息 [DefaultQuartzScheduler_Worker-5] but has failed to stop it. This is very likely to create a memory leak 同样在生产中我们遇到的问题是tomcat-server在./shutdown.sh之后没有停止,因此我们必须终止进程。 在我看来,它依赖石英工作,不能停止。 如何通过重新部署我的应用程序或关闭服务器来停止石英作业? 我用tomcat 7,石英2.1.6 …… SchedulerFactory sf = new StdSchedulerFactory(); Scheduler scheduler = sf.getScheduler(); scheduler.start(); JobDetail job = JobBuilder.newJob(XYZJob.class).withIdentity(“job1”, “group1”).build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity(“trigger1″,”group1”) .startNow() .withSchedule(CronScheduleBuilder.cronSchedule(“0 0 1 * * ?”)) .build(); scheduler.scheduleJob(job, trigger); 你可以看到我的工作每天开始一次。 我没有看到我可以检查国旗,取消工作的一点。

如何在Windows 7上向tomcat添加jvm选项

如何在Windows 7上向Tomcat添加jvm选项? 顺便说一句,我正在使用Tomcat 7.我将我的jvm选项添加到catalina.bat文件的第一行,但它没有用。 我想我做错了什么。 有什么想法吗?

对JBoss web.xml的更改无效

我刚把它添加到我的JBOSS服务器上的web.xml中。 但它没有效果。 我仍然可以连接到不使用双向证书交换的端口。 有人有想法吗? Entire Application /* <!– attribute in the element of server.xml –> CONFIDENTIAL CLIENT-CERT 更新 实际上我似乎在原始post中犯了一个错误。 web.xml确实阻止用户使用http(下面的端口C)连接到webservice。 但是,仍然允许用户连接到不强制用户自己进行身份validation的端口(端口B)。 我认为用户应该能够连接到端口A(它有clientAuth=”true” ),但我不认为人们应该能够连接到端口B(它有clientAuth=”false” )。 摘自server.xml <Connector port="” … SSLEnabled=”true” … scheme=”https” secure=”true” clientAuth=”true” keystoreFile=”… .keystore” keystorePass=”pword” truststoreFile=”… .keystore” truststorePass=”pword” sslProtocol=”TLS”/> <Connector port="” … SSLEnabled=”true” … scheme=”https” secure=”true” clientAuth=”false” keystoreFile=”… .keystore” keystorePass=”pword” sslProtocol = “TLS” /> […]

tomcat中的shutdown hook(必要)没有运行

我有一个长期运行的cpu和数据库密集型线程(以低优先级运行),可由管理员请求由我的tomcat应用程序触发。 我为此线程使用了一个关闭钩子,因此如果应用程序被强制停止,它可以在退出之前清理数据库状态。 在独立模式下完美运行,使用control-C并在eclipse控制台中取消。 但是当在tomcat下运行时,当我做一个: $ CATALINA_HOME / bin中/ shutdown.sh 我通过调试日志validation我的servlet contextDestroyed消息是由tomcat发送的,但是对于这个线程,消息无法阻止它,重要的是我的shutdown hook永远不会触发。 我注意到其他人说使用contextDestroyed消息,但这对我不起作用,并且一些问题和答案暗示关闭钩子在tomcat中为它们工作。 我正在使用tomcat 6.0.35。

通过IntelliJ IDEA 13部署的Tomcat war返回错误

我在IntelliJ中部署我的第一个WAR文件时出现以下错误。 据推测,这是一个本地问题,因为这只是我们为测试我们的设置而部署的WAR文件。 所有80个Maven测试都在通过,但是当我浏览到Web应用程序时,我收到此错误: java.lang.IllegalArgumentException: javax.naming.NameNotFoundException: Name [jdbc/ipam] is not bound in this Context. Unable to find [jdbc]. com.myapp1.ipam.rest.JaxRsApplication.(JaxRsApplication.java:26) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:526) org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1104) org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:902) org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:872) org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:964) org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:956) org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:336) org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:315) org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:285) org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:310) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745) 这似乎是问题所在: public JaxRsApplication() { DataSource datasource; try { Context […]

连接到Tomcat上的套接字?

我正在尝试从独立的applet连接到在tomcat上运行的servlet: Servlet的 public void init(ServletConfig config) throws ServletException { super.init(config); // Start a daemon thread try { daemonThread = new Daemon(this); daemonThread.start(); } catch (Exception e) { } } protected int getSocketPort() { return 8080; } public void handleClient(Socket client){ new ScribbleThread(this, client).start(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter […]

如何在tomcat服务器上运行具有不同弹簧配置文件的两个WAR文件?

我想在同一个tomcat服务器上并行运行我的spring应用程序两次。 一次使用production配置文件,一次使用dev配置文件。 我还想为这两个配置文件构建一个WAR。 我已经使用@Profile注释成功地在我的应用程序中集成了配置文件。 我已经在tomcat服务器上成功部署了两个WAR文件。 我需要的是在这两个应用程序中激活不同配置文件的意思,其中约束是这两个应用程序使用相同WAR文件的副本,并且这两个应用程序应该并行运行。 因此, WebApplicationInitializer和web.xml似乎不是一个选项。