Articles of spring

Spring,SockJS – WebSocket握手期间出错:意外的响应代码400

我已经使用Spring Boot实现了BE应用程序和WebSockets支持。 我使用SockJS为了连接到我的WebSocket端点,并在连接过程中出现以下错误: error during WebSocket handshake: Unexpected response code: 400 但是(就像你在上面的图片中看到的那样)一切正常,websocket打开了。 现在我不明白什么是这个问题的原因,以及如何解决这个问题。 请帮忙。 更新 感谢paweln1986帮助我有固定版本问题与SockJS lib但意外的响应代码400的问题仍然存在: 我也在Tomcat 8之前使用nginx。这是我的nginxconfiguration: server { listen 443 ssl; server_name myserver.com; ssl on; location /api/ { proxy_pass_header X-XSRF-TOKEN; proxy_pass http://localhost:8081/api/; proxy_set_header Origin "http://localhost:8081/api/"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; } location /dashboard/ { proxy_pass http://localhost:8081/dashboard/; […]

Spring Security无法使用Nginx Server创buildJSESSION id

我已经在spring mvc应用程序中实现了spring安全性并且对我来说工作正常但是我尝试使用Nginx服务器configuration来访问这个应用程序现在Spring Security停止工作最后,我发现Spring安全性无法创buildJSESSIONID cookie Nginx服务器。 任何人都可以帮我吗?

AWS Elastic Beanstalk – configuration我的nginx设置以增加Java Spring maven应用程序的超时

所以我使用AWS Elastic Beanstalk托pipe我的Java Spring应用程序,并且有一些需要60秒以上的完成请求。 我想提高暂停上限,这样可以完成,所以我开始按照这个教程。 我成功地更改了ELB控制台中的Load Balancer超时,但是我在更改nginx代理的设置时遇到了问题。 本教程build议创build一个名为.ebextensions/nginx-timeout.config的文件,其中.ebextensions位于“我的项目的根目录”中。 本教程假设我们正在使用Docker的Beanstalk,我没有,所以我find了这个链接,build议用这些内容填充nginx-timeout.config内容: files: "/tmp/proxy.conf": mode: "000644" owner: root group: root content: | proxy_send_timeout 1200; proxy_read_timeout 1200; send_timeout 1200; container_commands: 00-add-config: command: cat /tmp/proxy.conf >> /var/elasticbeanstalk/staging/nginx/conf.d/elasticbeanstalk/00_application.conf 01-restart-nginx: command: service nginx restart 我的问题之一是我不知道我的应用程序的根源在哪里。 我正在使用Java的Spring Boot的Maven,所以我的结构如下: 我不知道是否应该将.ebextensions放在我的pom.xml文件所在的基本目录中,或者放在其他地方。 另外我部署这个应用程序的方法是使用maven来构build一个jar,然后上传jar,我不知道这是否会改变任何东西。 有关这个问题的任何build议? 我目前也试图看看我可能ssh到我的实例可能会改变那里的nginx服务器的configuration,但我不知道这是可能的。

在反向代理后面的Thymeleaf模板(在Spring启动应用程序中)没有正确地形成url

在逆向代理服务器(在我的情况下为nginx)上使用Thymeleaf时,我遇到了一些麻烦,无法正确地形成相对URL。 假设我在nginx中有以下位置: location /app { proxy_pass http://10.0.0.0:8080; } 我有以下Thymeleaf 3页( index.html ): <html xmlns:th="http://www.thymeleaf.org"> <head> <link rel="stylesheet" th:href="@{/css/some.css}" /> </head> <body> Hello world! </body> </html> 使用的服务器是一个embedded式的Tomcat服务器(Spring引导),在context /运行。 当我发送一个请求到http://example.com/app ,那么我得到的index.html页面作为回应。 但是,不能检索css,因为当在Thymleaf模板中构造URL时,它将使用tomcat服务器的上下文path,即/ 。 index.html的构造url如下所示: http://example.com/css/some.css 这显然导致404没有find。 该URL需要形成如下: http://example.com/app/css/some.css 我需要configuration什么让Thymeleafforms的URL为http://example.com/app/css/some.css ? 我宁愿不硬编码某些configuration文件或类似的东西的任何地方的基地址。 我想我需要添加一些到nginxconfiguration,但我不知道到底是什么。

Spring Boot(ConfigServer)正在重新启动

我们有一个非常简单的Spring Boot Service( @EnableConfigServer )在一个nginx代理之后运行。 该服务基本上工作,但它始终重新启动(上下文closures,并不断启动)。 在这里查看日志文件: http : //pastebin.com/GErCF5x6 该设置基本上只是一个Java类和两个configuration(bootstrap.properties以及application.properties)。 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.cloud.config.server.EnableConfigServer; import org.springframework.context.annotation.Configuration; /** * Main Application, which starts the Spring Boot context */ @Configuration @EnableAutoConfiguration @EnableConfigServer public class Application { @SuppressWarnings("PMD.SignatureDeclareThrowsException") public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } bootstrap.properties spring.application.name = configserver spring.cloud.config.enabled […]

Spring MVC“redirect:/”前缀redirect,包含端口号

我一起使用tomcat和nginx来服务我的web应用程序。 nginx侦听端口8085,并将请求转发到端口8084上运行的tomcat。 如果我做了如下的redirect: @RequestMapping("/test") public String test() { return "redirect:/"; } 该页面被redirect到端口8084(Tomcat端口)而不是nginx端口(8085)。 我如何redirect到所需的端口? 编辑:我的nginxconfiguration是类似于这样的: server { listen 8085; server_name www.mydomain.com; location /{ proxy_pass http://127.0.0.1:8084; include /etc/nginx/conf.d/proxy.conf; } } 和/etc/nginx/conf.d/proxy.conf的内容: proxy_redirect off; proxy_set_header Host $host:$proxy_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 8m; client_body_buffer_size 256k; proxy_connect_timeout 120; proxy_send_timeout 120; proxy_read_timeout 120; proxy_buffer_size 4k; proxy_buffers 32 256k; […]

java.net.SocketException:太多打开文件Spring Hibernate Tomcat

我有一个客户端生产Linode服务器上的Hibernate,Spring,Debian,Tomcat,MySql堆栈。 它是一个Spring-Multitenant应用程序,为大约30个客户端托pipe网页。 应用程序启动正常,然后过一会儿,我得到这个错误: java.net.SocketException: Too many open files at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216) at java.lang.Thread.run(Thread.java:662) 然而,在引发这个错误之前,nagios会通知我ping到服务器的停止响应。 以前,我把nginx作为代理,而且每个请求都得到这个nginx错误,不得不重新启动tomcat: 2014/04/21 12:31:28 [error] 2259#0: *2441630 no live upstreams while connecting to upstream, client: 66.249.64.115, server: abril, request: "GET /catalog.do?op=requestPage&selectedPage=-195&category=2&offSet=-197&page=-193&searchBox= HTTP/1.1", upstream: "http://appcluster/catalog.do?op=requestPage&selectedPage=-195&category=2&offSet=-197&page=-193&searchBox=", host: "www.anabocafe.com" 2014/04/21 12:31:40 [error] 2259#0: *2441641 upstream […]

春季启动应用程序不工作后,SSH注销

所以我在Ubuntu LTS服务器上部署了我的Spring Boot应用程序。 它使用maven构build,并使用embedded式Tomcat运行。 我对这个部署过程还不熟悉,我做的是: 通过sshlogin到服务器 使用scp来上传my_application.zip 在ssh中解压缩 java -jar my_application.jar 现在所有这些工作都很好,而且我一直在用这种方式安静一段时间。 现在,我必须让应用程序在退出shell之后保持联机并可用。 我已经阅读了一些有关在Linux上运行后台进程的文档,我尝试过使用nohup java -jar myApplication.jar & ,使用screen命令和bg 。 所有这些工作都很好,而我login到SSH。 这是我的问题: 一旦我结束了ssh会话,Web应用程序仍然可用(所以这个过程显然没有停止),但它看起来和行为真的很奇怪。 CSS不适用,JS不工作等 我的猜测是,一些path或文件系统访问是搞砸了,但我不知道如何可能源于SSH会话。 (当我重新login到ssh时,一切正常) 如果有人在这里有线索会很好

在Spring引导中使用服务包装代替jar运行的优点是什么?

Spring文档在http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html中提到了服务包装器。 在生产中,我们可以使用java -jar [x].jar来运行我们的应用程序,它更容易。 使用服务包装有什么好处?

Windows和Linux的spring i18n行为是不同的

我使用Spring引导i18n。 在Windows中,如果select的语言环境没有语句A,它将使用messages.properties中的语句。 在CentOS中,如果select的语言环境中没有语句A,则首先使用messages_en_US.properties中的语句,如果messages_en中没有语句,则使用messages.properties中的语句。 为什么不一样? @Bean public LocaleResolver localeResolver() { CookieLocaleResolver clr = new CookieLocaleResolver();//also can use SessionLocaleResolver clr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); return clr; } @Bean public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); lci.setParamName("locale"); return lci; } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); }