Tag: tomcat8

Tomcat 8 Embedded – WebServlet – ‘启动时子容器失败’

我有一个嵌入式Tomcat服务器正在提供静态文件。 但是当我添加使@WebServlet工作所需的buildPath代码时,它在我的一个项目中不起作用(项目之间存在很多差异……大约50K行值)。 我甚至在读取web.xml之前得到以下错误(我从strace -ff知道这一点)。 org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:367) at app.http.TomcatServer.startTomcat(TomcatServer.java:87) at app.main.MainTools.startServer(MainTools.java:277) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Tomcat]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) … 4 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) … 6 more Caused by: org.apache.catalina.LifecycleException: […]

通过EL 3.0访问JSP中的静态属性或方法(JEE7; Tomcat 8)

我正在使用tomcat 8.0.9(servlet 3.1,jsp 2.3,el 3.0)并尝试从jsp页面访问静态属性,如下所示: ${Boolean.TRUE} 没有错误,但渲染结果中没有输出。 我究竟做错了什么? 编辑 这个问题的答案(标记为重复问题)声称,自从EL 3.0(JSR-341,Java EE 7的一部分)以来,可以引用所有java.lang。*类的常量,因为它们是隐式导入的,并且可以像所以 ${Boolean.TRUE} 这个答案对我不起作用,至少不适用于tomcat 8。 编辑2 来自Oracle的JEE7教程 (9.3.1.2引用对象属性或集合元素) 您可以使用语法classname.field引用静态字段或方法,如以下示例所示: Boolean.FALSE classname是没有包名的类的名称。 默认情况下,将导入所有java.lang包。 您可以根据需要导入其他包,类和静态字段。

如何使用Spring Boot和嵌入式Tomcat配置此属性?

我是否在application.properties文件中配置了诸如connectionTimeout之类的属性,或者在其他地方配置它? 我无法从谷歌那里得知这一点。 Tomcat属性列表 我找到了这个Spring-Boot示例 ,但是它没有包含connectionTimeout属性,当我在application.properties文件中设置server.tomcat.connectionTimeout=60000时出现错误。

Server-Sent-Events如何工作

我在tomcat 8.0上使用java尝试了SSE(Server-Sent-Events)。 以下是我注意到的一些事情。 我单击一个自动向servlet发出请求的按钮。 执行Servlet的GET方法,返回事件流。 收到完整的流后,页面会再次自动发出另一个请求,再次接收相同的数据! 那里没有无限循环!!! 服务器上实际发生了什么? 在正常情况下,tomcat会创建一个线程来处理每个请求。 现在发生了什么? 确保事件流只发送一次到同一个连接/浏览器会话的正确方法是什么? 确保事件流关闭且服务器上不会产生资源开销的正确方法是什么? 如何区分GET和POST请求。 为什么选择GET? 在Tomcat上使用SSE为时尚早? 任何性能问题? 这是好奇的代码, @WebServlet(“/TestServlet”) public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //content type must be set to text/event-stream response.setContentType(“text/event-stream”); //cache must be set to no-cache response.setHeader(“Cache-Control”, “no-cache”); //encoding is set to UTF-8 […]

在端口80上尝试https时,tomcat8处于100%cpu

当尝试连接到tomcat 8使用https:// localhost:8080 / tomcat卡在100%cpu与ip – – [12/Jan/2017:12:14:23 +0100] “-” 400 – -在access_log和 Jan 12, 2017 1:23:50 PM org.apache.coyote.http11.AbstractHttp11Processor process INFO: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. 在catalina.out 在firefox上我得到了 SSL_ERROR_RX_RECORD_TOO_LONG 我尝试使用默认配置tomcat8(debian 8上的全新安装),同样的事情正在发生。 我知道我不应该尝试在端口8080或80上使用https,但是我在服务器上收到了这些请求,我必须重启tomcat才能修复100%的cpu利用率

Tomcat 8 – LDAP:NameNotFoundException错误代码32,剩余名称为空字符串

尝试将应用程序从WebLogic 12.2.1迁移到Tomcat 8.5.4 ,Weblogic下的内容是作为LDAP连接的外部JNDI提供程序的条目已迁移到Tomcat下的新Resource 。 遵循Stack Overflow的这个建议 ,自定义LdapContextFactory已被打包为Tomcat lib文件夹下的新jar文件。 在Tomcat server.xml文件中,已配置以下GlobalNamingResources/Resource : 通过嵌入在Eclipse中的Apache Directory Studio / LDAP Browser等LDAP浏览器浏览LDAP目录时,上述连接可正常工作。 自定义com.sample.custom.LdapContextFactory非常简单: public class LdapContextFactory implements ObjectFactory { public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception { Hashtable env = new Hashtable(); Reference reference = (Reference) obj; Enumeration references = reference.getAll(); while (references.hasMoreElements()) { […]

我应该在环境变量PATH中添加JAVA_HOME和JRE_HOME吗?

我在设置Tomcat和Java环境路径时遇到了这个错误: JAVA_HOME和JRE_HOME环境变量都没有定义。 运行该程序需要至少一个环境变量。 在用户变量中:我创建了JAVA_HOME变量并将C:\ Program Files \ Java \ jdk1.8.0_25添加到其路径中。 然后编辑了系统变量PATH ,添加了C:\ Program Files \ Java \ jdk1.8.0_25; 到它的路径的开头。 我还在用户变量中创建了JRE_HOME ,并在其路径中添加了C:\ Program Files \ Java \ jre1.8.0_25 。 是否有必要创建JRE_HOME并且还应该将JRE路径添加到系统变量中吗?

使用spring boot实现2路SSL

我正在创建一些宁静的Web服务,并使用Spring-Boot创建一个嵌入式tomcat容器。 其中一个要求是实现双向SSL。 我一直在查看HttpSecurity对象,并且可以使用它来仅通过SSL通道运行web服务: – @Override protected void configure(HttpSecurity http) throws Exception { System.out.println(“CONFIGURED”); http // … .requiresChannel() .anyRequest().requiresSecure(); } 我似乎无法找到的方法是只允许提供有效客户端证书的应用程序访问Web服务。 我只有SSL的基本知识,所以即使是正确方向的一般指针也会受到赞赏。 正在部署的服务器将具有混合的应用程序 – 这是唯一需要使用双向SSL锁定的应用程序。 我真正想要的是一种锁定单个应用程序只接受客户端证书的方法。

期望一个对象数组但在对象中得到一个对象

在我正在进行的项目中,我遇到了一个角度exception: Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object? Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object? 在我寻找解决方案的搜索中,我直接将Web服务的URL输入到我的浏览器中,令人惊讶的是我没有按预期收到数组。 Web服务类: @Path(“/menu”) public class MenuHandler { @GET @Path(“/cls”) @Produces(MediaType.APPLICATION_JSON) public List getCLSs() { Clazz clazz = new Clazz(); Clazz.setFoo(“foo”); Clazz.setBar(“bar”); ArrayList […]

如何在tomcat 8中将Cookie处理器更改为LegacyCookieProcessor

我的代码正在处理tomcat 8版本8.0.33但是在8.5.4我得到:为此cookie指定了无效的域[.mydomain]。 我发现Rfc6265CookieProcessor是在tomcat 8最新版本中引入的。 它在官方文档上说,这可以在context.xml中恢复为LegacyCookieProcessor,但我不知道如何。 请让我知道如何做到这一点。 谢谢