Tag: tomcat

如何在Spring引导嵌入式tomcat中设置HTTPS SSL Cipher Suite首选项

我尝试根据服务器首选项设置HTTPS SSL密码套件首选项,而不是基于客户端和服务器支持的具有最高强度的通用密码套件进行自动选择。 我想让服务器选择具有“TLS_ECDHE …”的服务器和客户端之间的通用,以便支持Forward Secrecy。 现在我在“www.ssllabs.com”中测试过,客户端浏览器会更喜欢使用“TLS_RSA …”而非“TLS_ECDHE”的密码… 我注意到java 8支持set密码套件首选项: http : //docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#cipher_suite_preference 我假设Spring启动嵌入式Tomcat会调用Java 8函数来选择密码 这是我在spring boot application.properties文件中设置的服务器支持密码集: server.ssl.ciphers=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_SHA,TLS_ECDHE_RSA_WITH_AES_256_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_SHA384,TLS_ECDHE_RSA_WITH_AES_256_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_128_SHA,TLS_DHE_DSS_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_256_SHA256,TLS_DHE_DSS_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_256_SHA 希望有人可以指导我如何覆盖默认选择密码行为。

Spring Async DeferredResult在Tomcat 8中不起作用

我使用Spring 4.0.5和Servlet API 3.1.0创建了一个异步MVC应用程序。 使用Firefox 24,异步行为在Jetty 8.0中运行良好,但我无法在Tomcat 8.0和Firefox 24中使用它。我正在使用DeferredResult来管理异步请求。 知道我错过了什么吗? 它可能是一些Tomcat设置或web.xml中的某些内容,因为完全相同的Java代码在Jetty中运行良好。 当异步请求最终有结果并且应该写入响应时,我看到记录了以下消息: WebAsyncManager – Dispatching request to resume processing RequestResponseBodyMethodProcessor – Written [true] as “application/json” using MappingJacksonHttpMessageConvertor DispatcherServlet – Null ModelAndView returned to DispatcherServlet with name ‘app’: assuming HandlerAdapter completed request handling DispatcherServlet – Successfully completed request 长时间运行的请求永远不会回到我的浏览器,最终我在Tomcat日志中看到这个超时错误: CoyoteAdapter.asyncDispatch Exception while processing an asynchronous request […]

Java缓存和动态更新

我需要在servlet启动时从数据库“预加载”一些数据。 所以我想创建一些缓存,例如使用HashMap或类似的同步版本。 我还需要更新数据库更新更改的缓存。 所以我想添加一些“听众”。 我的问题是:这是以某种方式提供还是我必须实际实现它? 如果是的话,哪种设计模式最适合这里? 更新: 没有使用JPA或ORM。 但spring可用

为什么不能使用CentOS,plesk 9.2.1和tomcat 5.5来安装solr 1.3.0?

好的,我只是通过他的托管服务提供商为我的客户设置专用服务器。 他们在那里安装了plesk(版本9.2.1),这个专用服务器的一个注意事项是,如果我在控制面板外面做任何事情(即使用SSH)进行任何任务,他们不保证支持该软件组件。 这很好,因为我宁愿使用控制面板来完成它,因为我所要做的就是上传一个war文件来安装servlet。 这是问题,但是在安装最新版本的solr(1.3.0)后,我在plesk中收到了一个警告图标,它给了我一个模糊的错误,例如“应用程序的实际状态与从数据库中检索到的状态不对应。 “ 这是日志条目: Aug 17, 2009 11:16:15 PM org.apache.solr.servlet.SolrDispatchFilter init INFO: SolrDispatchFilter.init() Aug 17, 2009 11:16:15 PM org.apache.solr.core.SolrResourceLoader locateInstanceDir INFO: Using JNDI solr.home: /usr/share/solr Aug 17, 2009 11:16:15 PM org.apache.solr.core.CoreContainer$Initializer initialize INFO: looking for solr.xml: /usr/share/solr/solr.xml Aug 17, 2009 11:16:15 PM org.apache.solr.core.SolrResourceLoader INFO: Solr home set to ‘/usr/share/solr/’ Aug 17, 2009 11:16:15 […]

Java中的简单Websocket客户端 – 连接问题

我正在尝试用Java编写一个简单的websocket客户端来连接第三方WebSocket服务器(我无法访问服务器)。 我可以在浏览器中使用javascript连接和与websocket服务器通信,但是当我尝试使用Java客户端做同样的事情时,它无法连接。 使用相同的Java客户端,我可以连接到我运行的tomcat websocket服务器,所以我认为这是客户端和服务器之间的某种兼容性问题。 (我正在使用Tomcat 7.0.56库作为websocket客户端)。 这是我得到的错误…… 错误 javax.websocket.DeploymentException: The HTTP request to initiate the WebSocket connection failed at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:344) at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:166) at com.cvr.instant.ws.WebSocketClient.Connect(WebSocketClient.java:44) at com.cvr.instant.ws.TestWS.Start(TestWS.java:17) at com.cvr.instant.ws.TestWS.main(TestWS.java:37) Caused by: java.io.EOFException at org.apache.tomcat.websocket.WsWebSocketContainer.processResponse(WsWebSocketContainer.java:595) at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:317) … 4 more WebSocketClient import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import javax.websocket.ClientEndpoint; import javax.websocket.CloseReason; import javax.websocket.ContainerProvider; import javax.websocket.DeploymentException; import javax.websocket.OnClose; […]

在Tomcat中设置环境变量TESSDATA_PREFIX

我们正在使用名为Tess4J的Tesseract OCR Java库。 如果作为独立应用程序运行,它可以正常工作。 它需要一个名为TESSDATA_PREFIX的变量,它包含tessdata配置和其他charset相关文件。 在eclipse中嵌入式Tomcat 6服务器运行良好。 我使用启动配置将TESSDATA_PREFIX设置为环境变量。 但是当我将所有内容打包到WAR并将其放入tomcat的deploy目录中时,环境变量似乎没有被选中,并且服务器在遇到doOCR api(需要tessdata配置)时崩溃。 我尝试在catalina.bat和thru命令行中设置这个env变量,但没有运气。

如何在Windows Vista命令提示符下检查端口8080?

我是编程和设置Java服务器的新手。 实际上这是我第一次尝试但没有成功。 我将用Java测试我的第一个Web应用程序但是每当我单击Eclipse中的“在调试模式下启动服务器”按钮时,我总是遇到关于我的Tomcat服务器的错误,说我正在使用端口8080。 我想知道如何在控制台中检查它并尽可能地关闭它。 你知道处理这个问题的其他方法吗? 我也试过netstat但是在列表中找不到端口8080。 请帮帮我,因为我真的很沮丧。 我尝试了在谷歌中找到的任何解决方案,但仍然遇到同样的问题。 如果你能向我解释一下会发生什么,那会非常有帮助。 提前致谢。

Tomcat连接池与准备好的语句缓存

从DBCP连接池升级到Tomcat自己的实现(基于此处的优秀比较); 我有点困惑为什么他们放弃这两个属性,同时保留其他一切: poolPreparedStatements=”true” maxOpenPreparedStatements=”10000″ 这是否意味着此实现中不支持预准备语句池? 默认情况下,每个连接是否都维护自己的预准备语句池? 我花了相当长的时间研究这个并找不到明确的答案! 谢谢你的时间。

弹簧控制器 – 线程安全和存储资源

我对弹簧mvc和螺纹安全性有疑问。 我们正在开发将存储在tomcat上的Web应用程序。 如果我理解正确,Tomcat会根据请求创建线程并且它有一些线程池。 现在,调度程序servlet在请求之间共享,可能是线程安全的。 但是当我创建这样的控制器: @Controller @RequestMapping(“/manage”) public class QuestionManagementController { 他有Singleton范围,因此来自每个用户的每个请求都使用相同的控制器。 我想知道这个问题通常是如何解决的: 1:是使用Session范围创建的控制器吗? (但我认为如果一个用户快速做一些可能导致控制器竞争条件的事情,也可能会出现问题)。 2:控制器的范围是request 3:创建无状态控制器,这些控制器不在类级别共享任何变量,或者将它们置于只读模式 或者也许有一些更好的“最佳实践”可以解决这类问题。 我问这个问题,因为现在我们将它们作为Singleton作用域,并且存在一个问题,即在大多数方法中我们在数据库中查询用户,并且由于范围我们无法将此信息存储在类级变量中。 我们可以尝试使用一些线程安全的集合,但后来可能有其他资源需要同步访问。

如何在Tomcat 6中配置全局JNDI数据源?

我正在努力在Tomcat 6.0.32中配置一个简单的JNDI池数据源。 我想在我的Web应用程序工件之外创建数据源定义。 基本上我不希望我的应用程序知道访问数据库服务器的凭据。 我假设,在Weblogic中,应该可以在Tomcat中创建一个“全局”JNDI数据源,但到目前为止我一直没有成功。 我试图在CATALINA_HOME / conf / context中添加数据源定义: 结果是服务器在引导时输出以下行: SEVERE: Null component Catalina:type=DataSource,path=/,host=localhost,class=javax.sql.DataSource,name=”jdbc/mydb” 任何指针将不胜感激。